gpt4 book ai didi

mysql - "ON DELETE SET NULL"mysql mamp 错误

转载 作者:行者123 更新时间:2023-11-28 23:30:28 25 4
gpt4 key购买 nike

我正在尝试在我的 sql 脚本中添加“ON DELETE SET NULL”,但它不起作用...
这是我的表格:

enter image description here

系列表用于描述系列,类型表用于该系列的类型(戏剧、喜剧等)sql脚本是:

    #------------------------------------------------------------
# Script MySQL.
#------------------------------------------------------------


#------------------------------------------------------------
# Table: serie
#------------------------------------------------------------

CREATE TABLE serie(
id_serie Int NOT NULL ,
original_name_serie Varchar (256) ,
french_name_serie Varchar (256) ,
creation_date_serie Int ,
end_date_serie Int ,
status_serie Varchar (256) ,
duration_serie Int ,
synopsis_serie Varchar (2024) ,
countries_serie Varchar (128) ,
PRIMARY KEY (id_serie )
)ENGINE=InnoDB;


#------------------------------------------------------------
# Table: type
#------------------------------------------------------------

CREATE TABLE type(
id_type Int NOT NULL ,
name_type Varchar (128) ,
PRIMARY KEY (id_type )
)ENGINE=InnoDB;


#------------------------------------------------------------
# Table: have
#------------------------------------------------------------

CREATE TABLE have(
id_type Int ,
id_serie Int NOT NULL ,
PRIMARY KEY (id_type ,id_serie )
)ENGINE=InnoDB;

ALTER TABLE have ADD CONSTRAINT FK_have_id_type FOREIGN KEY (id_type) REFERENCES type(id_type) ON DELETE SET NULL;
ALTER TABLE have ADD CONSTRAINT FK_have_id_serie FOREIGN KEY (id_serie) REFERENCES serie(id_serie) ON DELETE CASCADE;

使用这个脚本,我希望当我在类型表中删除一个'type'时,'have'表中'type'的值传递给'null',这就是我添加“ON DELETE SET NULL”的原因。但它不起作用,我有:“#1005 - 无法创建表'zz.#sql-16527_272'(错误号:150)(详细信息......)“

我想可能是我试图在“有”表的主键中放置一个空值,但这是不可能的……但是我可以这样做吗?

最佳答案

type 表中的id_type 列是该表的主键,因此不能设置为null

解决这个问题的一种方法是更改​​外键的逻辑(例如,使用 on delete cascade,或者如果引用的行仍然存在则允许删除失败)。

另一种选择是从 type 表中删除主键,而只在该列上有一个 unique 键,从而允许 nulls。您还必须删除此列上的显式 not null 约束。

关于mysql - "ON DELETE SET NULL"mysql mamp 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37478610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com