无法截断表mysql

piah890a  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(368)

我的模式中有几个表在截断时遇到了问题。我的结构是:

country
->PK countryId
->name

city
->PK cityId
->FK countryId
->name

address
->PK addressId
->FK cityId

customer
->PK customerId
->FK addressId

appointment
->PK appointmentId
->FK customerId

现在我不是制作这个表的人,它是提供给我的,我也不是sql方面的任何Maven,实际上几乎不是初学者,但我需要能够截断数据,因为它是用于测试应用程序的,我有我不再需要的模拟数据。
这是我得到的错误:

TRUNCATE TABLE country  Error Code: 1701. Cannot truncate a table referenced in a foreign key constraint (`U05FKQ`.`city`, CONSTRAINT `city_ibfk_1` FOREIGN KEY (`countryId`) REFERENCES `U05FKQ`.`country` (`countryId`))  0.547 sec

我还尝试运行以下命令:

TRUNCATE TABLE appointment;
TRUNCATE TABLE customer;
TRUNCATE TABLE address;
TRUNCATE TABLE city;
TRUNCATE TABLE country;

它在约会截断时成功,但在客户上失败,并且不会继续。
我在应用程序中对数据进行单次删除时注意到的另一个大问题是,自动递增的id不会进行调整。删除一整张满是数据的表也是如此,即如果我删除了一张满是3个条目的表,即使在添加后表中只有一个条目,它仍然会显示id为4,有解决方法吗?
我没有访问原始数据库创建脚本的权限。

m1m5dgzv

m1m5dgzv1#

一个非常不安全的解决方案是:

SET FOREIGN_KEY_CHECKS=0;

然后,将其设置为:

SET FOREIGN_KEY_CHECKS=1;

相关问题