MySQL INSERT INTO,但 ON DUPLICATE 返回它的 id

标签 mysql

首先,我很困惑,我自己找不到这个简单问题的解决方案。

我想要完成的任务如下。

在事务中,只要不存在唯一索引(基于两个字段),我就想插入。例如,我希望名字和姓氏一起是唯一的。 但我希望多次使用名字和姓氏,但不能成对使用。

到目前为止,这对我有用,但是当我添加重复值时,我不希望更新任何内容。我只是想检索该字段的 id,以便在事务的下一部分中使用。

就我而言,我在 NodeJS 环境中使用它,但这并不重要。

所以,我想获取一个示例查询“如果不存在则插入”,但如果它确实存在,我想获取“id”,以便我可以在下一个事务中使用它。

提前致谢

最佳答案

您不会找到一个单一的查询来完成这一切。我会发出一个简单的插入语句。如果它返回到应用程序逻辑时出现重复键错误,那么您可以通过后续选择查询“违规”记录的 ID。

显然,您可以将逻辑封装到遵循上述步骤的存储过程中,并作为调用应用程序的单个查询出现。

关于MySQL INSERT INTO,但 ON DUPLICATE 返回它的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35868211/

相关文章:

mysql - 插入两个值的重复键更新?

c# - 更新查询 C# MySQL 表单

html - 网站运行速度非常慢

mysql - 一个 SQL 查询而不是多个

mysql - 删除列内两个分隔符之间的子字符串

java - SQL - 锁定或不锁定 : selecting next unused code

php - Symfony 模板损坏数据

python - 无法将文章插入 MySQL Python

mysql - 同一张表上的两个 select 语句并获取 Count(*)

Java - 从MySQL获取乱码结果(列表)