Когда я пытаюсь создать таблицу под названием Sales, MySQL дает следующую ошибку. Я не могу сказать, в чем проблема, и я взглянул на http://dev.mysql.com/doc/refman/4.1/en/innodb-foreign-key-constraints.html, чтобы узнать, какую ошибку я сделал, но я не могу сказать. Я получаю эту ошибку в MySQL 5.6.11, но не в 5.1.67Невозможно добавить ограничение внешнего ключа
Error
SQL query:
CREATE TABLE IF NOT EXISTS Sales(
name VARCHAR(30) NOT NULL ,
address VARCHAR(70) NOT NULL ,
serialsold VARCHAR(20) UNIQUE NOT NULL ,
background_check VARCHAR(9) NOT NULL ,
soldfor FLOAT NOT NULL ,
datesold TIMESTAMP DEFAULTNOW() ,
FOREIGN KEY (serialsold) REFERENCES Guns(serialnumber) ON DELETE SET NULL ON UPDATE CASCADE ,
PRIMARY KEY (background_check)
);
MySQL said: Documentation
#1215 - Cannot add foreign key constraint
мое оружие и покупки Таблицы:
CREATE TABLE IF NOT EXISTS Purchases
(
name VARCHAR(30) NOT NULL,
address VARCHAR(70) NOT NULL,
serialbought VARCHAR(20) UNIQUE NOT NULL,
boughtfor FLOAT,
datebought TIMESTAMP DEFAULT NOW(),
PRIMARY KEY (serialbought)
);
CREATE TABLE IF NOT EXISTS Guns
(
sequence INTEGER(4) NOT NULL AUTO_INCREMENT,
manufacturer VARCHAR(30) NOT NULL,
model VARCHAR(20) NOT NULL,
caliber VARCHAR(10) NOT NULL,
serialnumber VARCHAR(20) UNIQUE NOT NULL,
type VARCHAR(10) NOT NULl,
sellsfor FLOAT DEFAULT NULL,
FOREIGN KEY (serialnumber) REFERENCES Purchases(serialbought)
ON DELETE RESTRICT ON UPDATE RESTRICT,
PRIMARY KEY (sequence)
);
Пожалуйста, покажите свою таблицу «Guns» – peterm
. Одной из причин может быть серия, в которой вы создаете таблицы * (создание дочерних элементов перед родителями). * Установите 'foreign_key_checks = 0' в начале вашего сценария DDL. порядок по созданию не создает проблемы. – SajjadHashmi
Я уже пробовал, это не сработало. Сначала я делал покупки, потом пушки, потом пытался продавать, и это не сработало. – user3015939