我正在考虑将INSERT ON DUPLICATE KEY UPDATE
我的应用程序用于我的应用程序,该应用程序通常必须在一个事务中向数据库提交许多行。但是,我对一件事感到有些困惑。在线的使用示例似乎有很多针对此功能的变体。
我正在寻找的行为是,如果唯一索引中不存在该行,我想插入该行,但如果它确实存在,我只想返回 ID 但不更新任何内容。我是否正确假设这是该语句的预期功能。
此外,我不想在我的表中创建虚拟字段来利用此功能,正如许多示例中所建议的那样。在我看来,这只是不好的做法。
任何意见是极大的赞赏。下面是 mysql 网站上的一个例子,它说明了我想要的,但 c=3 部分没有解释。我想知道这是否需要使 last_insert_id 实际工作,或者它只是他们示例的一部分。我已经读过,在 last_insert_id 部分之后没有一些虚拟操作,那么 last_insert_id 将不起作用。
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3;