删除级联不起作用

时间:2013-03-15 08:02:57

标签: php mysql mysqli

我有两张桌子:users和'账单'。在bills中作为users的外键。

当我从bills表中删除时,我想自动删除users表中的行。为此,我使用以下查询来更改表,但它仍然不会从账单表中删除条目。

我的改动声明是:

ALTER TABLE bills
ADD CONSTRAINT fk_pid
FOREIGN KEY (pid)
REFERENCES users(id)
ON DELETE CASCADE

此处pid是账单表中的外键,而用户表中的id主键是

请帮我解决上述问题,提前谢谢。

2 个答案:

答案 0 :(得分:1)

使用create而不是alter,否则你的语法没问题

Create TABLE bills(
Your columns details
------
------
ADD CONSTRAINT fk_pid
FOREIGN KEY (pid)
REFERENCES users(id)
ON DELETE CASCADE
)

试试这个..

如果它不起作用,那么也试试这个。 如果你的两个表都有不匹配的主键和外键问题那么你就无法添加删除Cascade。因为你需要修复那个键问题。就像你的用户表中没有主键值而你在同一个id中使用你的账单表作为外键然后你不能在账单表中添加级联。为了从账单表中删除该密钥,然后尝试添加级联脚本与Alter.I有同样的问题,但我使用这种方式,它工作。希望它会也为你工作。谢谢

答案 1 :(得分:0)

我认为this solution for create可以帮助您找出实际上缺少的内容。

通过它并尝试根据您的需要进行自定义,因为您没有提供足够的细节 以及你的问题。

我怀疑它必须对你的create table语句做些什么

或者试试ALTER1ALTER2