记录一下碰到的问题。由于我是使用PowerDesigner来建mysql物理模型的,为了表与表之间的关系更加清楚,我给他们连线了。之后我就用它生成的SQL语句在navicat把表建出来,我看见没问题就直接用了,毕竟初学者嘛,嘿嘿。
到我做到删除的时候,我一般是先在数据库先试试SQL语句可以还是不可以才把它写到项目里面的,然后,在我写好删除的SQL后,运行,它报错了。它不让我删除,说存在外键约束,删除会破坏他们的结构。
外键约束:让数据库自己通过外键来保证数据的完整性和一致性,让他们的关联性更强。
虽然它是有用处,但一般是用不上的,而且会让我们写SQL的难度增加。
有可能带来的问题,当mysql数据库中有两个表,table1和table2,相互关联,在删除表的时候出错:
Cannot delete or update a parent row: a foreign key constraint fails
很明显这是表关联生成的强制约束问题,在删除的时候回检查表之间的关联关系,从而导致无法删除。
如果不想删除它的外键约束,其实可以在mysql这样写
这样就可以删除带有外键约束的表的数据了,但是,我还不会写到mybatis的xml里面,而且我感觉它给我的用处不大,所以我决定把我那个数据库里面的外键约束全部删除掉。
我们先把数据库里面所有的外键约束查出来
数据库名那里就写你要删除外键约束的数据库名字就行了,然后运行。
接着他就会查出一堆外键约束给你
然后把查出来的东西复制到上面执行
最后就成功了,这下子没有了外键约束的阻碍,我们不是想删除啥就删除啥。