像它本身一样简单。我想要一个自动增量字段,但有时我必须在某些必须手动设置的字段中重复 id。
使用 PHP 对 Mysql 中的 AUTOINCREMENT 字段执行此操作有什么问题吗?(一致性 , ... )
根据您的 php 结构,您可以替换:
INSERT INTO table_name (name, incr)
VALUES ('hello', {$incr}) # using retrieved data
和
INSERT INTO table_name (name, incr)
SELECT 'hello', incr
FROM ( SELECT (incr + 1) AS incr
FROM table_name
ORDER BY incr DESC
UNION
SELECT 1) AS h
LIMIT 1
基本上,它只会检查incr
表中的最高值,或者从 1 开始。这只需要一个 MySQL 调用,并且会加快速度。
考虑使用复合主键(2 列或更多列来创建主键)。一列可能是自动增量,另一列是您的“重复 ID”。无论哪种方式,这都可以确保每一行都有一个唯一的键。