无法截断表mysql

时间:2018-11-30 10:01:38

标签: mysql mysql-workbench

我的架构中有几个表,它们在截断时遇到问题。我的结构是:

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的任何专家,实际上不是初学者,但我需要能够截断数据以进行测试应用程序,并且已经模拟了不再需要的数据。

这是我得到的错误:

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个条目的完整表,IE也不会删除整个表,IE,即使我在添加后仅在表中有一个条目,它仍显示ID为4,是否有此解决方法? / p>

我无权访问原始数据库创建脚本。

1 个答案:

答案 0 :(得分:2)

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

SET FOREIGN_KEY_CHECKS=0;

然后,将其设置为:

SET FOREIGN_KEY_CHECKS=1;