gpt4 book ai didi

java - 要获取的 SQL,如果不存在则插入新条目

转载 作者:行者123 更新时间:2023-11-29 01:04:23 25 4
gpt4 key购买 nike

我不确定这个问题是否属于 SQL、MySQL、存储例程甚至 JDBC 领域。基本上我想要一个如下所示的 SQL 函数:

INSERT IGNORE (id, data) INTO table
SELECT id FROM table WHERE `data` = data

这需要通过原始 SQL 或存储例程从 Java 启动。这看起来非常糟糕,因为如果 insert ignore 成功,它不应该紧跟 SQL 查询来获取刚刚插入的内容。请注意,id 将自动生成。执行此操作的最佳方法是在 SQL 查询数量和可读性等方面高效吗?我真的不知道 INSERT IGNORE 的效率如何。

最佳答案

您可以使用 LAST_INSERT_ID() , 有一点逻辑:

INSERT IGNORE ... INTO Table
SELECT IF(LAST_INSERT_ID() <> 0, LAST_INSERT_ID(), (SELECT id FROM table WHERE `data` = data))

(未经测试)

关于java - 要获取的 SQL,如果不存在则插入新条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11548459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com