【发布时间】:2013-08-10 07:37:22
【问题描述】:
我有一个 mysql 数据库,其中包含一个表,该表同时具有自动增量主键和唯一字符串值键(sha-1 哈希)。
如果我尝试添加与现有记录具有相同 sha-1 哈希值的记录,我只想获取现有记录的主键。在尝试插入具有现有哈希值的记录时,我可以使用“INSERT ... ON DUPLICATE KEY UPDATE”或“INSERT IGNORE”之类的东西来防止异常。
但是,当这种情况发生时,我需要检索现有记录的主键。我找不到使用单个 SQL 语句的方法。如果重要的话,我的代码是用 Java 编写的,而且我使用的是 JDBC。
或者,我可以使用两个语句来完成(如果没有找到,则查询后跟插入,或者如果存在重复键,则插入后跟查询)。但我认为单个语句会更有效。
【问题讨论】:
-
你需要什么“检索现有记录的主键”?
-
你不能用一条语句来做到这一点。