【问题标题】:Insert or Query with 1 statement使用 1 条语句插入或查询
【发布时间】:2021-09-23 08:44:28
【问题描述】:

使用 MySQL

附下表:

Idempotent
id VARCHAR(256) PRIMARY KEY
createdAt DATETIME NOT NULL

如何使用 1 条语句执行 INSERTSELECT

INSERT INTO Idempotent
(id, createdAt)
VALUES
('hello world', '2021-09-23 12:34:56')
ON DUPLICATE KEY **SELECT * FROM Idempotent WHERE (id = 'hello world') **

SELECT 不允许用于ON DUPLICATE KEY 那么如何使用 1 语句进行插入或选择?有没有可能?

【问题讨论】:

  • UPDATE 需要关注ON DUPLICATE KEY,而不是SELECT
  • 是的,这就是问题所在。有没有办法尝试INSERT,当它失败时,SELECT 使用一个语句?
  • 不行。查询要么返回行集,要么不返回,而您希望查询仅有时返回行集。请描述任务本身,而不是您决定申请解决此任务的(不正确的)方式。
  • @theAnonymous 。 . . INSERTSELECT不同的语句。您可以INSERT 然后SELECT 插入的行。

标签: mysql sql insert


【解决方案1】:

你需要使用INSERT INTO .. SELECT FROM

INSERT INTO Idempotent
(id, createdAt)
SELECT 'hello world', '2021-09-23 12:34:56'
FROM DUAL;

【讨论】:

  • 同一语句多次运行将返回Duplicate entry 'hello world' for key 'idempotent.PRIMARY'
猜你喜欢
  • 2022-07-08
  • 1970-01-01
  • 2015-01-14
  • 1970-01-01
  • 2014-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-30
相关资源
最近更新 更多