MYSQL外键增删改查

来源:互联网 发布:淘宝的专柜代购便宜 编辑:程序博客网 时间:2024/05/16 11:16

下面亲自演示整个过程。

1.首先创建一个test表格


2. 查看test表字段属性


3. 创建fk_test表格, 其中FK_1是该外键的名称,后面再进行删除、修改等操作的时候会用到


4. 查看fk_test表格字段属性


   可以看到 course_id  的KEY属性为PRI,id的MUL属性为MUL

    PRI代表主键的意思,不可以重复。MUL表示可以重复。此外还有UNI,也是不可以重复。

5. 向fk_test中插入数据

    

   出现错误,原因在于id有外键约束,保证了fk_test和test数据的一致性,也就是说fk_test中每条记录的id的值必须是在test中出现的

6. 再次向fk_test中插入数据

    

    先在test中插入了一条记录,该记录的id值为1,再向fk_test中插入了id值为1的记录,成功。

7.  删除fk_test id的外键属性

     如果忘记了外键名可以通过

select * from information_schema.TABLE_CONSTRAINTS  t where t.TABLE_NAME='fk_test' and CONSTRAINT_TYPE='FOREIGN KEY';
进行查询,如下 constraint_name 为FK_1


删除操作语法

ALTER TABLE table-name DROP FOREIGN KEY key-name;
执行删除操作


执行完后查看列表属性,发现id的key属性仍然是MUL,但是此时往里面进行数据插入时约束已经取消了。

8. 给已经存在的字段增加外键属性

添加外键的操作

alter table table-name add constraint 外键名 foreign key(字段名) references 引用表明(字段名)


执行操作,报错,为什么呢?因为刚才插入了李四这条记录的操作,李四的id为2,而test里面是没有id为1的记录的,

这里要么删除fk_test里面李四这条记录要么在test里面增加id为2的记录

为了避免这种情况,一般我们会在外键设置时候加上级联属性  

alter table table-name add constraint 外键名 foreign key(字段名) references 引用表明(字段名) on delete cascade on update cascade;

删除了李四这条记录后,给id添加外键属性


查看外键


可以看到外键FK_2已经成功插入了





0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 快点你爸马上就回来了视频 儿子你搞快点你爸要回来啦电影 儿子快拿出来你爸快回来了视频 儿子你要高就快点你爸回来了电影 儿子你要就快点你爸要回来了小说 儿子 快点妈要来了漫画 你快点啊你爸快回来了视频 儿子快点你爸快回来了在哪能看 儿子搞快点你爸要回来了短文 儿子你快停下你爸要醒了视频 儿子用点力妈 儿子深一点用点力阅读 你要搞就快点你爸快回来了视频 试衣间深一点用点力视频 儿子深一点用点力阅读张研 儿子你用点力全文阅读 啊快一点啊用点力啊视频 儿子再用点力妈要飞了视频 中国真实的母教子视频 四川单亲妈教子性知识 52岁全程落脸视频 我尝到了母爱的滋味开头 我尝到了母爱的滋味txt 我尝到了母爱的甜蜜400 真实母教子视频 我尝到了母亲的滋味400 我尝到了母爱的滋味450 单亲家庭母教子 啊儿子深点妈要来了中文字 美国真实的母教子视频 儿子别 停妈还要中文字 尝到了母爱的滋味400 让儿子尝试了一次中文字 我尝到了母爱的滋味40 我尝到了母爱的滋味400小说下载 好胀胀死妈了乖乖儿子中文字 我尝到了母爱的滋味300 儿子别射J去妈会怀孕视频中文 全屏儿子射J去妈怀孕了漫画 全屏无遮单身妈和儿 四川真实亲妈视频y