Cannot add foreign key constraint - MySQL
Формулировка задачи:
CREATE TABLE salespeople (sid integer not null auto_increment, sname text not null, comm decimal(5,5), primary key (sid)) engine = InnoDB Default charset = utf8;
Решение задачи: «Cannot add foreign key constraint»
textual
Листинг программы
CREATE TABLE salespeople (sid int not null auto_increment, sname text not null, comm decimal(5,5), primary key (sid)) engine = InnoDB Default charset = utf8; INSERT INTO salespeople (sid, sname, comm) VALUES (1, "Ivan Jadov", "0.12"), (2, "Fedor Zahapov", "0.15"), (3, "Maxim Petrov", "0.14"), (4, "Alisa Tir", "0.12"); CREATE TABLE categories (pcategory_id int not null auto_increment, pcname text not null, primary key (pcategory_id)) engine = InnoDB Default charset = utf8; INSERT INTO categories (pcategory_id, pcname) VALUES (1, "Kettles"), (2, "Microwaves"), (3, "Televisions"); CREATE TABLE products (pid int not null auto_increment, pbrand text, pcategory_id int, pname text, pquantity int, pcost decimal (15,2), primary key (pid), foreign key(pcategory_id) references categories(pcategory_id) ON UPDATE CASCADE) engine = InnoDB Default charset = utf8; INSERT INTO products (pid, pbrand, pcategory_id, pname, pquantity, pcost) VALUES (1, "Samsung", 1, "Exhaust", 3, "650.5"), (default, "Samsung", 1, "Fountain", 5, "790.0"), (default, "Black mesa", 2, "Black mesa-1", 7, "2200.0"), (default, "Black mesa", 3, "Emitter-3", 9, "9000.0"); CREATE TABLE orders (oid int not null auto_increment, odate DATE, amt DECIMAL(15,2), pid int, sid int, primary key(oid), foreign key(pid) references products(pid) ON DELETE CASCADE ON UPDATE CASCADE, foreign key(sid) references salespeople(sid) ON DELETE CASCADE ON UPDATE CASCADE) engine = InnoDB Default charset = utf8; INSERT INTO orders (oid, odate, amt, pid, sid) VALUES (default, "2009-09-1", "650.5", 1, 1), (default, "2009-09-10", "790.0", 2, 2), (default, "2009-10-1", "2200.0", 3, 3), (default, "2009-11-15", "9000.0", 4, 1), (default, "2009-12-4", "650.5", 1, 2);
Объяснение кода листинга программы
- Создание таблицы
salespeople
с полямиsid
,sname
,comm
и настройками для ИнниДБ. - Вставка данных в таблицу
salespeople
. - Создание таблицы
categories
с полямиpcategory_id
,pcname
и настройками для ИнниДБ. - Вставка данных в таблицу
categories
. - Создание таблицы
products
с полямиpid
,pbrand
,pcategory_id
,pname
,pquantity
,pcost
,primary key (pid)
и настройками для ИнниДБ. - Вставка данных в таблицу
products
. - Создание таблицы
orders
с полямиoid
,odate
,amt
,pid
,sid
,primary key(oid)
,foreign key(pid) references products(pid) ON DELETE CASCADE ON UPDATE CASCADE
,foreign key(sid) references salespeople(sid) ON DELETE CASCADE ON UPDATE CASCADE
и настройками для ИнниДБ. - Вставка данных в таблицу
orders
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д