NRPC/nrpc_db/reserve/pc_parts_new 20210324 1854.sql

377 lines
8.4 KiB
MySQL
Raw Permalink Normal View History

2021-06-27 22:45:20 +00:00
--
-- Скрипт сгенерирован Devart dbForge Studio 2019 for MySQL, Версия 8.1.22.0
-- Домашняя страница продукта: http://www.devart.com/ru/dbforge/mysql/studio
-- Дата скрипта: 24.03.2021 18:54:13
-- Версия сервера: 5.7.25
-- Версия клиента: 4.1
--
--
-- Отключение внешних ключей
--
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
--
-- Установить режим SQL (SQL mode)
--
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
--
-- Установка кодировки, с использованием которой клиент будет посылать запросы на сервер
--
SET NAMES 'utf8';
--
-- Удалить функцию `addNewPart`
--
DROP FUNCTION IF EXISTS addNewPart;
--
-- Удалить таблицу `stock`
--
DROP TABLE IF EXISTS stock;
--
-- Удалить таблицу `shop`
--
DROP TABLE IF EXISTS shop;
--
-- Удалить таблицу `ord_parts`
--
DROP TABLE IF EXISTS ord_parts;
--
-- Удалить таблицу `ord`
--
DROP TABLE IF EXISTS ord;
--
-- Удалить таблицу `user`
--
DROP TABLE IF EXISTS user;
--
-- Удалить таблицу `part`
--
DROP TABLE IF EXISTS part;
--
-- Удалить таблицу `category`
--
DROP TABLE IF EXISTS category;
--
-- Удалить таблицу `supplier`
--
DROP TABLE IF EXISTS supplier;
--
-- Создать таблицу `supplier`
--
CREATE TABLE supplier (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) NOT NULL,
address varchar(255) NOT NULL,
phone varchar(255) NOT NULL,
email varchar(255) NOT NULL,
PRIMARY KEY (id)
)
ENGINE = INNODB,
AUTO_INCREMENT = 2,
CHARACTER SET utf8,
COLLATE utf8_general_ci;
--
-- Создать индекс `name` для объекта типа таблица `supplier`
--
ALTER TABLE supplier
ADD UNIQUE INDEX name (name);
--
-- Создать таблицу `category`
--
CREATE TABLE category (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) NOT NULL,
PRIMARY KEY (id)
)
ENGINE = INNODB,
AUTO_INCREMENT = 8,
AVG_ROW_LENGTH = 2340,
CHARACTER SET utf8,
COLLATE utf8_general_ci;
--
-- Создать индекс `name` для объекта типа таблица `category`
--
ALTER TABLE category
ADD UNIQUE INDEX name (name);
--
-- Создать таблицу `part`
--
CREATE TABLE part (
id int(11) NOT NULL AUTO_INCREMENT,
upc bigint(12) NOT NULL,
price decimal(19, 2) NOT NULL,
id_category int(11) NOT NULL,
id_supplier int(11) NOT NULL,
PRIMARY KEY (id)
)
ENGINE = INNODB,
AUTO_INCREMENT = 7,
AVG_ROW_LENGTH = 4096,
CHARACTER SET utf8,
COLLATE utf8_general_ci;
--
-- Создать индекс `upc` для объекта типа таблица `part`
--
ALTER TABLE part
ADD UNIQUE INDEX upc (upc);
--
-- Создать внешний ключ
--
ALTER TABLE part
ADD CONSTRAINT FK_part_category_id FOREIGN KEY (id_category)
REFERENCES category (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
--
-- Создать внешний ключ
--
ALTER TABLE part
ADD CONSTRAINT FK_part_supplier_id FOREIGN KEY (id_supplier)
REFERENCES supplier (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
--
-- Создать таблицу `user`
--
CREATE TABLE user (
id int(11) NOT NULL AUTO_INCREMENT,
login varchar(255) NOT NULL,
password varchar(255) NOT NULL,
info varchar(255) DEFAULT NULL,
PRIMARY KEY (id)
)
ENGINE = INNODB,
AUTO_INCREMENT = 2,
AVG_ROW_LENGTH = 16384,
CHARACTER SET utf8,
COLLATE utf8_general_ci;
--
-- Создать индекс `login` для объекта типа таблица `user`
--
ALTER TABLE user
ADD UNIQUE INDEX login (login);
--
-- Создать таблицу `ord`
--
CREATE TABLE ord (
id int(11) NOT NULL AUTO_INCREMENT,
id_user int(11) NOT NULL,
status int(11) NOT NULL,
date datetime NOT NULL,
PRIMARY KEY (id)
)
ENGINE = INNODB,
AUTO_INCREMENT = 3,
AVG_ROW_LENGTH = 16384,
CHARACTER SET utf8,
COLLATE utf8_general_ci;
--
-- Создать внешний ключ
--
ALTER TABLE ord
ADD CONSTRAINT FK_ord_user_id FOREIGN KEY (id_user)
REFERENCES user (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
--
-- Создать таблицу `ord_parts`
--
CREATE TABLE ord_parts (
id int(11) NOT NULL AUTO_INCREMENT,
id_order int(11) NOT NULL,
id_part int(11) NOT NULL,
count int(11) NOT NULL,
PRIMARY KEY (id)
)
ENGINE = INNODB,
AUTO_INCREMENT = 3,
AVG_ROW_LENGTH = 8192,
CHARACTER SET utf8,
COLLATE utf8_general_ci;
--
-- Создать внешний ключ
--
ALTER TABLE ord_parts
ADD CONSTRAINT FK_ord_parts_ord_id FOREIGN KEY (id_order)
REFERENCES ord (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
--
-- Создать внешний ключ
--
ALTER TABLE ord_parts
ADD CONSTRAINT FK_ord_parts_part_id FOREIGN KEY (id_part)
REFERENCES part (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
--
-- Создать таблицу `shop`
--
CREATE TABLE shop (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) NOT NULL,
address varchar(255) NOT NULL,
phone varchar(255) NOT NULL,
email varchar(255) NOT NULL,
PRIMARY KEY (id)
)
ENGINE = INNODB,
AUTO_INCREMENT = 3,
AVG_ROW_LENGTH = 8192,
CHARACTER SET utf8,
COLLATE utf8_general_ci;
--
-- Создать индекс `name` для объекта типа таблица `shop`
--
ALTER TABLE shop
ADD UNIQUE INDEX name (name);
--
-- Создать таблицу `stock`
--
CREATE TABLE stock (
id int(11) NOT NULL AUTO_INCREMENT,
id_part int(11) NOT NULL,
id_shop int(11) NOT NULL,
count varchar(255) NOT NULL,
PRIMARY KEY (id)
)
ENGINE = INNODB,
AUTO_INCREMENT = 10,
AVG_ROW_LENGTH = 4096,
CHARACTER SET utf8,
COLLATE utf8_general_ci;
--
-- Создать внешний ключ
--
ALTER TABLE stock
ADD CONSTRAINT FK_stock_part_id FOREIGN KEY (id_part)
REFERENCES part (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
--
-- Создать внешний ключ
--
ALTER TABLE stock
ADD CONSTRAINT FK_stock_shop_id FOREIGN KEY (id_shop)
REFERENCES shop (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
DELIMITER $$
--
-- Создать функцию `addNewPart`
--
CREATE FUNCTION addNewPart (upc bigint(12), category_id int(11), supplier_id int(11), price dec(11, 2))
RETURNS int(11)
BEGIN
DECLARE part_id int;
DECLARE shop_id int;
DECLARE n int;
DECLARE i int;
INSERT IGNORE INTO part
VALUES (NULL, upc, price, category_id, supplier_id);
SELECT
p.id INTO part_id
FROM part p
WHERE p.upc = upc;
SELECT
COUNT(*)
FROM s shop INTO n;
SET i = 1;
WHILE i <= n DO
INSERT IGNORE INTO stock
VALUES (NULL, part_id, i, 0);
SET i = i + 1;
END WHILE;
RETURN 1;
END
$$
DELIMITER ;
--
-- Вывод данных для таблицы supplier
--
INSERT INTO supplier VALUES
(1, 'Compart', 'ул. Гидротехников, д. 155', '+7 (911) 324-03-22', 'office@comp.ru');
--
-- Вывод данных для таблицы category
--
INSERT INTO category VALUES
(5, 'Блок питания'),
(2, 'Видеокарта'),
(7, 'Жесткий диск'),
(6, 'Корпус'),
(4, 'Материнская плата'),
(3, 'Оперативная память'),
(1, 'Процессор');
--
-- Вывод данных для таблицы user
--
INSERT INTO user VALUES
(1, 'erius', '12345678', '');
--
-- Вывод данных для таблицы shop
--
INSERT INTO shop VALUES
(1, 'Магазин в ТК Алоха', 'ул. Тютчевская, д. 2', '+7 (932) 139-73-10', 'tutchevskaya15@novparts.ru'),
(2, 'Магазин у ст. м. Чёрная речка', 'ул. Савушкина, д. 56', '+7 (924) 098-32-12', 'savushkina56@novparts.ru');
--
-- Вывод данных для таблицы part
--
INSERT INTO part VALUES
(2, 111111111111, 239.99, 1, 1),
(3, 123123123123, 699.99, 2, 1);
--
-- Вывод данных для таблицы ord
--
INSERT INTO ord VALUES
(2, 1, 3, '2021-03-24 00:00:00');
--
-- Вывод данных для таблицы stock
--
INSERT INTO stock VALUES
(5, 2, 1, '10'),
(7, 2, 2, '6'),
(8, 3, 1, '1'),
(9, 3, 2, '0\r\n');
--
-- Вывод данных для таблицы ord_parts
--
INSERT INTO ord_parts VALUES
(1, 2, 3, 1),
(2, 2, 2, 2);
--
-- Восстановить предыдущий режим SQL (SQL mode)
--
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
--
-- Включение внешних ключей
--
/*!40014 SET FOREIGN_KEY_CHECKS = @OLD_FOREIGN_KEY_CHECKS */;