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

时间:2016-03-08 13:05:26

标签: mysql

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

我想要完成的是以下内容。

在事务中,只要不存在唯一索引(基于两个字段),我想要INSERT INTO。因此,例如,我希望名字和名字在一起是唯一的。 但是我想要多次使用名字和名字,但不是一对。

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

在我的情况下,我在NodeJS环境中使用它,但这不重要。

所以,我想得到一个示例查询'插入如果不存在'但如果它确实存在我想得到'id'所以我可以在下一个事务中使用它。

提前致谢

1 个答案:

答案 0 :(得分:0)

您不会找到完成所有这一切的单个查询。我会发一个简单的插入语句。如果它向应用程序逻辑返回重复键错误,那么您可以查询"冒犯"的ID记录后续选择。

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