gpt4 book ai didi

sql - 插入 Informix 表或更新(如果存在)

转载 作者:行者123 更新时间:2023-12-02 03:23:54 26 4
gpt4 key购买 nike

我想向 Informix 数据库表添加一行,但是当存在具有相同唯一键的行时,我想更新该行。

我找到了MySQL的解决方案here如下所示,但我需要它用于 Informix:

INSERT INTO table (id, name, age) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE name="A", age=19

最佳答案

您可能应该使用 MERGE声明。

给定一个合适的:

create table table (id serial not null primary key, name varchar(20) not null, age integer not null);

此 SQL 有效:

MERGE INTO table AS dst
USING (SELECT 1 AS id, 'A' AS name, 19 AS age
FROM sysmaster:'informix'.sysdual
) AS src
ON dst.id = src.id
WHEN NOT MATCHED THEN INSERT (dst.id, dst.name, dst.age)
VALUES (src.id, src.name, src.age)
WHEN MATCHED THEN UPDATE SET dst.name = src.name, dst.age = src.age

Informix 有有趣的规则,允许使用关键字作为标识符,而不需要双引号(事实上,除非您在环境中设置了 DELIMIDENT,否则双引号只是字符串周围单引号的替代方案)。

关于sql - 插入 Informix 表或更新(如果存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36917424/

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