MySQL:使用ON UPDATE SET NULL和ON DELETE SET NULL的错误150,为什么? [英] MySQL: error 150 using ON UPDATE SET NULL and ON DELETE SET NULL, why?
本文介绍了MySQL:使用ON UPDATE SET NULL和ON DELETE SET NULL的错误150,为什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这个:
DROP TABLE IF EXISTS `sf_guard_user`;
CREATE TABLE `sf_guard_user`
(
`id` INTEGER(11) NOT NULL AUTO_INCREMENT,
`username` VARCHAR(128) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `sf_guard_user_U_1` (`username`)
)Type=InnoDB;
DROP TABLE IF EXISTS `shop_orders`;
CREATE TABLE `shop_orders`
(
`orders_id` INTEGER(11) NOT NULL AUTO_INCREMENT,
`sfgu_id` INTEGER(11) NOT NULL,
PRIMARY KEY (`orders_id`),
INDEX `shop_orders_FI_1` (`sfgu_id`),
CONSTRAINT `shop_orders_FK_1`
FOREIGN KEY (`sfgu_id`)
REFERENCES `sf_guard_user` (`id`)
ON UPDATE SET NULL
ON DELETE SET NULL,
)Type=InnoDB;
我收到此错误:
1005-无法创建表 'prueba1.shop_orders'(错误:150)
1005 - Can't create table 'prueba1.shop_orders' (errno: 150)
如果我不删除ON UPDATE SET NULL和ON DELETE SET NULL行.
if i do not remove the lines ON UPDATE SET NULL and ON DELETE SET NULL.
知道为什么吗?
致谢
哈维
推荐答案
我认为这是因为您声明了字段NOT NULL
I think that is because you declared the field NOT NULL
这篇关于MySQL:使用ON UPDATE SET NULL和ON DELETE SET NULL的错误150,为什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文