mysql外键约束

时间:2010-01-24 15:51:17

标签: mysql

我在表中设置了外键完整性。但我能够从主表中删除数据,这是子表中的引用。 会有什么问题 实际上它应该说删除错误就像所有引用的表数据一样必须删除。

2 个答案:

答案 0 :(得分:1)

mysql不要为你做,

您需要在删除操作上声明触发器

删除前触发示例:

http://www.java2s.com/Code/Oracle/Trigger/Createabeforedeletetrigger.htm

答案 1 :(得分:1)

您是否指定了 ON DELETE CASCADE ?当你创建你的FK?不知道你使用的是哪种引擎

例如

CREATE TABLE parent (id INT NOT NULL,
                     PRIMARY KEY (id)
) ENGINE=INNODB;
CREATE TABLE child (id INT, parent_id INT,
                    INDEX par_ind (parent_id),
                    FOREIGN KEY (parent_id) REFERENCES parent(id)
                      ON DELETE CASCADE
) ENGINE=INNODB;

更多http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html