遇到的问题: 因为tb_shop表中有外键约束,因此务必确保 设置的这几个id在对应的表中存在. 我们提前在
tb_person_inf tb_area
tb_shop_category
分别添加了如下id的数据,以避免插入tb_shop时抛出如下异常
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails
(o2o
.tb_shop
, CONSTRAINT fk_shop_area
FOREIGN KEY (area_id
)
REFERENCES tb_area
(area_id
))
由于存在外键约束,数据库里的数据不能删除,可以先解除外键约束,现在就教大家一个轻松的办法,不用删除外键就可以删除数据库中的一些数据,关键id还能从1开始,不用默认递增
解决方法:删除数据库中的元素(由于存在外键约束,数据删除不了)
首先,在数据库中查看外键是否有效(没有设置之前都是有效),命令:select@@foreign_key_checks;
其中,值为1,外键有效,此时,要想删除数据库中的数据是删不掉的
将外键的值设置为0,此时就是失效状态,命令:set foreign_key_checks = 0,这时就能删除数据了
删除之后,外键再设置为有效:
是不是很简单的几个命令,就能删除有外键约束数据库中的数据。数据是删除了,可要是再添加一条数据,id是从删除的id基础上增加还是就是删除的那个id呢,一起来看一下:
看一下运行结果:
显然,id是递增的,不是删除的12,而是13了。那么,要想id从1开始,下面就分享一下另外一个命令,id可以从1开始: truncate删除表中的数据, auto_increment记录数将重置,相当于是删掉表在重新建表
插入数据,查看id情况:
id从1 开始了 。方法虽然是有的,但是在正式操作之前还是要慎重 ,特别是在公司数据面前,自己测试的话,就另说了~~