本文主要介绍mysql外键关联删除(数据库外键级联删除),下面一起看看mysql外键关联删除(数据库外键级联删除)相关资讯。
文中的例子展示了mysql如何利用外键实现级联删除和更新:mysql innodb存储引擎只支持外键。创建外键时,父表必须有相应的索引。当在子表中自动创建相应的索引并创建外键时。创建索引时,可以在子表中指定相应的操作。当你删除或更新父表时,包括限制、无动作、空集和级联、限制和无动作,意味着子表是记录的父表,不能更新关联;级联是当父表的记录集被更新、删除、更新或删除,对应的子表为空时;在父表中,当表被更新或删除时,该字段被设置为null。因为只有innodb引擎允许使用外键,所以数据表必须使用innodb引擎。我用的版本是mysql5.1版,流程如下:创建数据库:创建数据库测试;创建一个表,其中第一个表的id是第二个表的外键(用户信息):create table (user) int(4)不为空,` sex 枚举(f,true)默认为空,主键(id) innodb engine =默认字符集latin1);创建表(` userinfo ` tin ` int(4)不为空auto_increment,` userid` int (4)不为空,` information` varchar(20)默认为空,主键(sn),键us测试。插入 用户 (id, 性与健康。;)值(1,f),(2 是的 )、(3,f);插入 用户信息 ( 锡 , 用户 , 信息与广告。;)值(1,1 ;2005054dsf),(2,1, fdsfewfdsfds),(3,1, gdsgergergrtre),(4,2, et34t。vbcbfdgr),(8 ,3 , 45r2343234were),(9,3 ;, wfyhtyjtyjyjy);让 让我们来看看当前数据表的状态:显示表;-| tables _ in _ test |-user | | userinfo |-2行。| id | sex ||| 1 | f ||| 2 | m |||| 3 | f |用户信息表中的3行(0秒):mysql从用户信息中选择*;- sn用户名信息|||| | -。1 | gdsgergergrtre | | 4 | 2 | et34t 5435435 werwe | | 5 | 2 | 435 rtgtrhfghfg | | 6 | 2 | ret 345 tr 4345 | | 7 | 3 | fgbdfvbcbfdgr | | 8 | 3 | 45r 2343234 w测试的级联。我们将删除user表的id的数据记录,userinf表中与该用户id相关的子记录将被自动删除。删除操作执行成功!mysql删除用户id,` ` `= 2;查询ok,第1行受影响(0.03秒)。检查用户表中没有id 2的数据记录!select * from users| id |性别||| 1 | f ||| 3 | f | 2行(0秒)看3的数据记录,没有用户名2用户信息表,对应数据自动删除!mysql select * from用户信息;-序列号用户名信息|| |--| 1 | 1 | 2005 05 4 dsf | | 2 | 1 | fdsfewfdsfds | | 3 | 1 | gdsgergergrtre | | 7 | 3 | fgbdfvbcbfdgr | | 8 | 3 | 45r 2343234 were | | | 9 | 3 | wfyhtyjtyjyjy |-更新6行(0秒)的操作是类似的,因为我们定义了删除和更改用户表中原始id的数据记录到id 1到id 4的操作;查询正常,1行受影响(0.03秒)匹配行:1更改:1警告:0现在让 让我们看看这两个表的数据是否有变化。select * from users| id | sex ||| 3 | f ||| 4 | f | 2行(0秒)mysql select * from用户信息;- sn用户名信息| | | | | | | | | | | | | gdsgergergrtre | | 7 | 3 | fgbdfvbcbfdgr | | 8 | 3 | 45r 2343234 where | | | 9 | 3 | wfyhtyjtyjyjy |-。!!这也使得通过使用外键同时删除和更新多个相关表成为可能,从而确保数据一致性。更多对mysql相关内容感兴趣的读者可以看专用站:希望这篇文章能帮助你了解mysql数据库插装。
了解更多mysql外键关联删除(数据库外键级联删除)相关内容请关注本站点。