Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL配置,允许在引用表为空时执行truncate_Mysql_Truncate - Fatal编程技术网

MySQL配置,允许在引用表为空时执行truncate

MySQL配置,允许在引用表为空时执行truncate,mysql,truncate,Mysql,Truncate,我在两个不同的服务器上运行完全相同的代码: Truncate table2; Truncate table1; 两台服务器中的两个表结构完全相同,表2有一个外键引用表1 因为table2在table1之前被截断,所以它是空的,并且没有指向table1的键,所以截断table2应该不会有问题但是!!!: 在一台服务器上,它工作得非常好,而在另一台服务器上,我得到一个外键约束错误: Cannot truncate a table referenced in a foreign key constr

我在两个不同的服务器上运行完全相同的代码:

Truncate table2;
Truncate table1;
两台服务器中的两个表结构完全相同,表2有一个外键引用表1

因为table2在table1之前被截断,所以它是空的,并且没有指向table1的键,所以截断table2应该不会有问题但是!!!:

在一台服务器上,它工作得非常好,而在另一台服务器上,我得到一个外键约束错误:

Cannot truncate a table referenced in a foreign key constraint (user`.`table2`, 
CONSTRAINT `table2_ibfk_1` FOREIGN KEY (`ID`) REFERENCES `user`.`table1` (`ID`))
我可以从中理解,为了始终允许截断空表,必须有一个可以更改的设置。如果不是服务器,应该给我同样的错误

我知道我可以使用delete,但这是一个较长的过程,在这种情况下需要重置自动增量

我只想了解为什么服务器1没有错误,而服务器2有错误。

有什么想法吗?
谢谢。

只需删除索引,截断表,然后再次添加外键。很好,但我不必在服务器1上运行该查询,它只允许我这样做,我想需要进行一些mysql配置。必须在服务器1上将其设置为0。对于数据完整性,最好将其保持在1。这就是我在查询中将其设置回1的原因。否:(事实并非如此,在两台服务器上都将其设置为ON(1)。
SET FOREIGN_KEY_CHECKS=0; TRUNCATE table1; SET FOREIGN_KEY_CHECKS=1;