我真的很难理解外键是如何工作的,尽管我可以看到它们是一个非常有用的工具。了解MYSQL中的外键约束
我有一个名为seasons
的表,其中包括一列season_id
这是主键。还有其他一些栏目。
我有第二个表,名为dates
其中包括名为hid
,date
和season_id
(和其他几个)的列。主键包含hid
和date
。 season_id
有一个外键约束ON DELETE SET NULL
和ON UPDATE CASCADE
。
这是否表示如果我删除dates
中的一行,season_id
将设置为null
在seasons
?或者相反呢?
我需要做的是当我在dates
中删除一行时,seasons
不受影响。但是如果我删除seasons
中的一行,season_id
应该设置为null
的dates
。
到目前为止,这么好。但是当我试图删除一个赛季的日期时,我遇到了一个问题。我想将日期行保留在表中,但将season_id设置为null。 查询是 更新日期SET season_id =“NULL” WHERE躲在=“$藏”和日期=“$值” 但是我然后得到错误信息 不能添加或更新子行:外键约束(''lithot_extranet/dates',CONSTRAINT'dates_ibfk_19' FOREIGN KEY('season_id')REFERENCES'seasons'('season_id')ON DELETE SET NULL ON UPDATE CASCADE) – TrapezeArtist
不要将'NULL'放在引号中。 – Barmar
这很简单,当你知道如何!我想我还在进行,所以巴马尔的绿色勾号。 perdigueiro也值得一个,但我不知道系统是否允许其中两个。多谢你们。 – TrapezeArtist