如果不存在则插入 RETURN 值

INSERT IF NOT EXISTS ELSE RETURN THE VALUE

我需要一个 SQLite 查询,如果 table 不存在则插入一个值,如果存在则 return 插入值。到目前为止,我在这里找到了“如果不存在则插入”部分:

INSERT INTO tableName (str1, str2, date)
SELECT 'example','someText', DATETIME()
WHERE NOT EXISTS (SELECT 1 FROM tableName WHERE str1 = 'example')

我是 SQLite 的新手,但我需要类似的东西:

IF NOT EXIST: INSERT the value
ELSE (IF EXIST): RETURN the value

有人可以告诉我该怎么做吗?谢谢。

据我了解,SQLite 不支持此功能。不过以后会支持这个的。

参见:https://www.sqlite.org/draft/lang_returning.html#:~:text=The%20RETURNING%20clause%20is%20designed%20to%20provide%20the,report%20the%20chosen%20values%20back%20to%20the%20application

正在拟定实施的草案中。

可能的 SQL 可能是:

INSERT INTO tableName (str1, str2, date)
SELECT 'example','someText', DATETIME()
WHERE NOT EXISTS (SELECT 1 FROM tableName WHERE str1 = 'example') RETURNING *;