mysql - 在重复键上插入自动增量值?

标签 mysql insert

这看起来应该很简单,但我想不出一种方法来做到这一点。假设我有一个包含 5,000 行的表,每行的 ID(主键)为 1–5000。我盲目地插入一个带有现有 ID 的新值,它可能类似于 2677。我想要发生的是,如果 ID 已经存在,它将使用 auto_increment 值,在本例中为 5001。那个或现有的最大值值 + 1。

最重要的是,我不能使用 PHP(或 SQL 以外的任何其他工具)来执行此操作,因为输出是一个需要直接导入而不会出错的查询。

我看过关于 SO 的两个类似问题:

最佳答案

INSERT INTO table (column1,column2) VALUES (1,2) ON DUPLICATE KEY UPDATE id=VALUES(id)

显然,这需要一个带有 AUTO_INCREMENTid 列。

此外,如果您稍后需要选择插入的 id 就像它是一个新的 Insert 一样,您可以:

ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(VALUES(id));

关于mysql - 在重复键上插入自动增量值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39434751/

相关文章:

安卓:SQLite - insertWithOnConflict

haskell - 在 Haskell 中实现二叉搜索树插入

Android数据库在开头插入

php - 我如何从 mysql 数据库验证用户密码

mysql - Woocommerce 在数据库中添加加售

mysql - 如何按同一 ID 的不同负责人姓名进行分组

sql - 将范围自动插入到 Oracle 表中

mysql - 当我使用 mysql workbench 进行逆向工程时,外键消失

MySQL : When stored procedure parameter name is the same as table column name

mysql - 字段列表中的未知列