我有一个有主键的表,出于某种原因,我被建议不要使用 AUTO_INCREMENT 标志。 因此,每次我必须插入一个新条目时,我都会搜索主键的最后插入值(最大值)。 然后我将它递增 1 以获得新 ID。 现在我面临的问题是,当插入第一个条目时,表中没有数据。
任何人都可以建议最佳检查方法 如果表中存在数据, 如果不将 id 设置为 1 并插入新行, 否则从表中获取最后一个 ID,将其递增 1,然后插入新行。
PS:mysql 的新手,所以语法有困难。
最佳答案
根据您的陈述“我搜索主键的最后插入值(最大值)”,我假设您当前正在执行类似这样的操作以获得最大现有 ID:
SELECT MAX(id_column) + 1 FROM my_table
如果您有一个空表,这当然会返回 NULL
。在这种情况下,如果没有最大值,只需使用 IFNULL
处理 NULL
以返回 0:
SELECT IFNULL(MAX(id_column), 0) + 1 FROM my_table
如果表没有行,这将输出 1 作为下一个标识符。
关于mysql - 从没有自动递增的表中获取最后一个主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59566855/