mysql 语句练习

在设计表时忘记添加外键约束了,后来想添加外键,结果报了这个错误。

                       ERROR 1452 : Cannot add or update a child row:

我估计是因为里面的数据不能和另一张表的主键匹配,所以设置失败,所以这里就是提供两种解决方法,第一个删除原有的属性名,重新加这个属性名,重新赋值,并设置外键约束。

  alter table     emp(表名)    

     add constraint      fk_emp_dept (外键名)

        foreign key      (deptno)  (本表的外键名)

           references     dept(deptno) (外表的表名和主键)

               ON DELETE RESTRICT ON UPDATE CASCADE;(更新方式  删除时 不操作  更新时子表同时更新)

第二种方式 是添加一个属性名 然后将它设为外键,方法同上。

  增加属性名的SQL语句: alter  table   emp  add  foreignkey varchar(20);默认是加到最后 ,你可以在varchar后面加上修饰的 first | after 属性名  来调整顺序。

这里的主表 和 子表的意思 有外键的是子表,当删除子表数据时,主表是不受影响的,这个概念容易混淆。

后续更新。


你可能感兴趣的:(mysql)