这似乎应该很简单,但我无法找到一种方法。假设我有一个包含5000行的表,每行有一个1-5000的ID(主键)。我盲目地插入一个带有现有ID的新值,它可能类似于2677.我想要发生的是,如果ID已经存在,它将使用auto_increment值,在这种情况下为5001.那或者最大存在值+ 1。
最重要的是,我不能使用PHP(或SQL以外的任何其他东西)来执行此操作,因为输出是一个需要直接导入而无错误的查询。
我在SO上看了两个类似的问题:
Can you use aggregate values within ON DUPLICATE KEY - 这里的问题是他们从现有的桌子中选择我无法做到的。
on duplicate key update with a condition? - 这里的问题是我没有关于我导入的表格的信息(基本结构除外),并且不知道最大值是什么
答案 0 :(得分:0)
INSERT INTO table (column1,column2) VALUES (1,2) ON DUPLICATE KEY UPDATE id=VALUES(id)
很明显,这需要使用id
的{{1}}列。
此外,如果以后您需要选择插入的AUTO_INCREMENT
,就像它是新插入一样,您可以这样做:
id