简体   繁体   English

MySQL外键约束

[英]mysql foreign key constraints

I have set foreign key integrity in a table. 我在表中设置了外键完整性。 But i am able to delete data from the master table, which is reference in child table.. What would be the problem Actually it should say error on deletion like all referenced table data has to be deleted. 但是我能够从主表中删除数据,该主表是子表中的引用。是什么问题呢?实际上,它应该说删除时出错,就像必须删除所有引用的表数据一样。

mysql dont do it for you , mysql不为你做,

you need declare trigger on delete action 您需要在删除操作上声明触发器

before delete trigger example : 删除触发器之前的示例:

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

Did you specify ON DELETE CASCADE ? 您是否指定了ON DELETE CASCADE when you created your FK? 当您创建FK时? Don't know which engine you are using either 不知道您正在使用哪个引擎

example

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;

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM