首先,我很困惑,我自己找不到这个简单问题的解决方案。
我想要完成的任务如下。
在事务中,只要不存在唯一索引(基于两个字段),我就想插入。例如,我希望名字和姓氏一起是唯一的。 但我希望多次使用名字和姓氏,但不能成对使用。
到目前为止,这对我有用,但是当我添加重复值时,我不希望更新任何内容。我只是想检索该字段的 id,以便在事务的下一部分中使用。
就我而言,我在 NodeJS 环境中使用它,但这并不重要。
所以,我想获取一个示例查询“如果不存在则插入”,但如果它确实存在,我想获取“id”,以便我可以在下一个事务中使用它。
提前致谢
最佳答案
您不会找到一个单一的查询来完成这一切。我会发出一个简单的插入语句。如果它返回到应用程序逻辑时出现重复键错误,那么您可以通过后续选择查询“违规”记录的 ID。
显然,您可以将逻辑封装到遵循上述步骤的存储过程中,并作为调用应用程序的单个查询出现。
关于MySQL INSERT INTO,但 ON DUPLICATE 返回它的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35868211/