Полагаю, ты не представляешь, что делаешь.Ваш код полон ошибок.
user_id
int (10) без знака NOT NULL по умолчанию '0', order_id
int (10) без знака NOT NULL по умолчанию '0', ПЕРВИЧНЫЙ КЛЮЧ (user_orders_user_id
, user_orders_order_id
)
Откуда взялись user_orders_user_id
.И почему двойной.Потратьте время, чтобы прочитать ваш код.Должно быть, ПЕРВИЧНЫЙ КЛЮЧ (user_id
, order_id
)
ИНОСТРАННЫЙ КЛЮЧ (user_id) ССЫЛКИ user (id) НА УДАЛИТЬ ОГРАНИЧЕНИЕ НА ОБНОВЛЕНИЕ КАСКАД, ИНОСТРАННЫЙ КЛЮЧ (order_id) ССЫЛКИ заказ (идентификатор) НА УДАЛИТЬОГРАНИЧЕНИЕ НА ОБНОВЛЕНИЕ КАСКАДА,) AUTO_INCREMENT = 50;
Я предлагаю вам использовать другой подход.Сначала измените порядок запятых, чтобы вы могли легко их поменять.Затем поместите # перед вашими линиями FK.
DROP TABLE IF EXISTS `user_orders`;
CREATE TABLE `user_orders`
( user_id int(10) unsigned NOT NULL default '0'
, order_id int(10) unsigned NOT NULL default '0'
, PRIMARY KEY (`user_id`, `order_id`)
#, FOREIGN KEY (user_id) REFERENCES userS(id) ON DELETE RESTRICT ON UPDATE CASCADE
# , FOREIGN KEY (order_id) REFERENCES order_id) ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=InnoDB
# AUTO_INCREMENT=50
DEFAULT CHARSET=utf8
;
Упростить.Это работает по крайней мере.Затем раскомментируйте 1 строку за раз.
Тип
ПОКАЗАТЬ СТАТУС ДВИГАТЕЛЯ INNODB;
всякий раз, когда вы получаете странные ошибки mysql.Ищите
------------------------
LATEST FOREIGN KEY ERROR
------------------------
160323 10:25:43 Error in foreign key constraint of table DEMO/user_orders:
FOREIGN KEY (user_id) REFERENCES userS(id) ON DELETE RESTRICT ON UPDATE CASCADE
Это приводит к следующему решению.
CREATE TABLE `USERS`
( `ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT
, `NAME` VARCHAR(10) NOT NULL
, `EMAIL` VARCHAR(20) NOT NULL
, `ACTIVE` BOOLEAN NOT NULL default 0
, CONSTRAINT PK PRIMARY KEY (`ID`) USING BTREE
, UNIQUE KEY `UK_ID` (`ID`) USING BTREE
, UNIQUE KEY `UK_NAME` (`NAME`)
, UNIQUE KEY `UK_EMAIL` (`EMAIL`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `user_orders`;
CREATE TABLE `user_orders`
( user_id int(10) unsigned NOT NULL # default '0'
, order_id int(10) unsigned NOT NULL # default '0'
, PRIMARY KEY (`user_id`, `order_id`)
, FOREIGN KEY (user_id) REFERENCES USERS(id) ON DELETE RESTRICT ON UPDATE CASCADE
# , FOREIGN KEY (order_id) REFERENCES order_id ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=InnoDB
# AUTO_INCREMENT=50
DEFAULT CHARSET=utf8
;