NRPC/nrpc_db/reserve/pc_parts_new 20210324 1854.sql
2021-06-28 01:45:20 +03:00

377 lines
No EOL
8.4 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

--
-- Скрипт сгенерирован 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 */;