答案:这个问题的关键是级联删除,
正常情况下,如果主表的键被从表引用时,是不能删除主表或者是删除,更改主表中被引用的内容
这时就会用到级联, 常用的有级联删除,级联置空
这两个级联声明要在创建外键引用的时候声明就可以了:
下面举例说明:
表1: user1 id name password
表2: manager id name role userid ==>引用自user1的id字段
sql:语句:create table user1(id int, name char(2), password(20));
关键是从表的写法:
create table manager (id int , name char , role .. , user id references user1(id) on delete set null
要在外键引用时跟上on delete set null 或者 on delete cascade 级联删除
其他:外键的概念是对应于记录,而不是字段
也就是定义了外键,而且设置了级联更新,如果删除了主表的一条记录,那外键表的对应记录也会自动删除。 同意楼上的!或者你没有主外键关系,可以删除操作两遍。 一般别用外键,用程序去控制数据的增删。不然在维护期很麻烦 参考资料为 MySQL 外键约束 的例子
包含 默认的方式、DELETE CASCADE 方式、UPDATE CASCADE方式、SET NULL方式
上一个:mysql创建数据库问题!
下一个:请问mysql 数据库 如何还原 .bak 文件啊? 命令提示符该怎么操作啊?