我有这个表:
语录
+---------------------+-----------------------+------+-----+---------+---+
| 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)在DELETE CASCADE上引用quotes (id) )
发布于 2017-09-01 00:50:12
我删除了quotesPackagesInfo表,并从开始添加外键重新创建了它,它工作了,但仍然不知道之前出了什么问题
https://stackoverflow.com/questions/45986218
复制相似问题