MySQL:使用ON UPDATE SET NULL和ON DELETE SET NULL的错误150,为什么? [英] MySQL: error 150 using ON UPDATE SET NULL and ON DELETE SET NULL, why?

查看:486
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆