删除表中的第一行后如何保持一致性。 MySQL的

时间:2013-11-23 06:50:17

标签: mysql sql

假设我有一个名为Suppliers的表,我想删除第一行:

delete from suppliers where supplierID = 1

在先前的查询之后,“做什么必须保持一致性”是什么意思?主键(SupplierID)是使用AUTO_INCREMENT创建的。

2 个答案:

答案 0 :(得分:2)

如果您使用的是AUTO_INCREMENT,那么您无法按照自己的想法进行操作,因为数据库中的AUTO_INCREMENT键用于唯一标识给定的行。找到最低未使用键值的最佳方法是根本不使用AUTO_INCREMENT,并手动管理键。

另外要提到您可以使用ON DELETE CASCADE自动删除InnoDB数据库中的相关记录,但是在MyISAM中您必须手动删除它们。

同时检查此reference

答案 1 :(得分:0)

要保持同步性,您应该在指向Suppliers.supplierID的从属表中使用InnoDB endine和foreign键。

如果您尝试删除任何其他表中引用的记录,则数据库将发出错误。

http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html

第一个供应商的ID可以这样找到:

SELECT MIN( supplierID ) FROM Suppliers