我有这张桌子:
引号
+---------------------+-----------------------+------+-----+---------+---+
| Field | Type | Null | Key | Default
+---------------------+-----------------------+------+-----+---------+---+
| id | int(11) unsigned | NO | PRI | NULL
... (More Columns)
+---------------------+-----------------------+------+-----+-------------+
quotesPackagesInfo
+---------------+---------------------+------+-----+---------+------------+
| Field | Type | Null | Key | Default
+---------------+---------------------+------+-----+---------+------------+
| id | int(11) unsigned | NO | PRI | NULL
| quoteId | int(11) unsigned | NO | | NULL
... (More Columns)
+---------------+---------------------+------+-----+---------+------------+
quotesFlightsInfo
+---------------------------+---------------------+------+-----+----------+
| Field | Type | Null | Key | Default
+---------------------------+---------------------+------+-----+----------+
| id | int(11) unsigned | NO | PRI | NULL
| quoteId | int(11) unsigned | NO | MUL | NULL
| packageId | int(11) unsigned | YES | MUL | NULL ... (More Columns)
+---------------------------+---------------------+------+-----+----------+
所以基本上有引号是主键,引号内有软件包之后,一个软件包可以包含航班,因此我需要在删除软件包时删除所有与航班有关的物品,因此我添加了外键飞往以下航班:
ALTER TABLE quotesFlightsInfo
ADD CONSTRAINT fk_quotesFlightsInfo_packageId
FOREIGN KEY (packageId) REFERENCES quotesPackagesInfo(id)
ON DELETE CASCADE
现在我正在尝试向程序包添加外键,因此当报价被删除时,程序包也会删除,因此飞行但不起作用:(,在此查询:
ALTER TABLE quotesPackagesInfo
ADD CONSTRAINT fk_quotesPackagesInfo_quoteId
FOREIGN KEY (quoteId) REFERENCES quotes(id)
ON DELETE CASCADE
错误:无法添加或更新子行:外键约束失败(
??????????
。#sql-312_2
,CONSTRAINT fk_quotesPackagesInfo_quoteId
外键(quoteId
)参考quotes
(id
)删除级联) 最佳答案
我删除了quotesPackagesInfo表,并再次创建它,从开始添加外键就可以了,但是仍然不知道发生了什么事
关于mysql - 在外键约束表中添加外键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45986218/