比方我有a表
当中有个字段id为主键
id是b表中的外键
现在我想删除a表主键就直接把b表有关id的字段都删了
怎么写语句呢?
当中有个字段id为主键
id是b表中的外键
现在我想删除a表主键就直接把b表有关id的字段都删了
怎么写语句呢?
解决方案 »
- JDBC连接MySQL报错Communications link failure due to underlying exception
- MySQL Command Line Client显示中文的部分为空,不是乱码
- 关于MySQL的 主键 外键问题~~
- com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException
- 一个远程访问MYSQL的问题
- MySql中为何不支持下面语句?
- 一个mysql启动的问题?起不来了
- 各位大侠,帮帮忙!!
- 如何实现按 where in () 中的顺序排序,find_in_set() 没有效果?
- mysql cmd能连上,Navicat连不上
- prepare中使用输出变量执行时报未定义错误
- mysql 获得表记录总数的效率问题 急急急
是删除记录还是修改结构?如是前者设置级联删除
delete a,b from a inner join b on a.id=b.id where a.id=你的值
改为这个就不报错了
为什么呢?
一开始时restrict
那restrict , no action 跟 set null分别是什么意思呢?
在父表上update/delete记录时,将子表上匹配记录的列设为null
要注意子表的外键列不能为not null
On delete set null从mysql3.23.50开始可用; on update set null从mysql4.0.8开始可用 No action方式
如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作
这个是ANSI SQL-92标准,从mysql4.0.8开始支持 Restrict方式
同no action, 都是立即检查外键约束