具有空tablr的Mysql innodb引用完整性
空表如何抛出“外键约束失败”? 我有两个表:“listini”和“listinoprezzi”,第二个表是对第一个表的外来引用。但是,“listinoprezzi”是空的,当我试图截断“listini”时,我得到: 怎么可能呢?如(重点补充)所述: 为了获得高性能,它绕过了删除数据的DML方法。因此,它不能回滚,不会导致触发删除时的具有空tablr的Mysql innodb引用完整性,mysql,foreign-keys,referential-integrity,Mysql,Foreign Keys,Referential Integrity,空表如何抛出“外键约束失败”? 我有两个表:“listini”和“listinoprezzi”,第二个表是对第一个表的外来引用。但是,“listinoprezzi”是空的,当我试图截断“listini”时,我得到: 怎么可能呢?如(重点补充)所述: 为了获得高性能,它绕过了删除数据的DML方法。因此,它不能回滚,不会导致触发删除时的触发器,并且不能对具有父子外键关系的InnoDB表执行该操作。 虽然类似于,但它被分类为DDL语句,而不是DML语句。它与MySQL 5.5的不同之处在于: [del
触发器,并且不能对具有父子外键关系的InnoDB
表执行该操作。
虽然类似于,但它被分类为DDL语句,而不是DML语句。它与MySQL 5.5的不同之处在于:
[deletia]
- 如果引用该表的其他表中存在任何
外键
约束,则InnoDB
表将失败。允许在同一表的列之间存在外键约束
您可以:先删除外键约束,然后
截断
;或者只需使用删除。
#1701 - Cannot truncate a table referenced in a foreign key constraint (`listiniprezzi`, CONSTRAINT `listiniprezzi_ibfk_4` FOREIGN KEY (`listino`) REFERENCES `listini` (`id`))