在 table 中更新或以其他方式创建条目

Update or otherwise create an entry in table

我想用正常的 SQL(不是 MySQL)在 table 中更新或创建一个新条目。 我的 table 有列:T_ID、ITERATION、COMMENT

我知道我可以更新我的table:

UPDATE TABLE
    SET ITERATION = ITERATION + 1
    WHERE T_ID = 1;

但是如果不存在 T_ID = 1 的条目,我想创建一个 ITERATION = 1 和 T_ID = 1 的条目,并且作为 COMMENT nothing.

这可以通过使用普通的 SQL 语句实现吗?

您可能希望在存储过程中执行此操作。像这样的东西,你正在检查 T_ID = 1 是否存在任何东西。然后根据这个结论你将更新或插入。

BEGIN TRAN
IF EXISTS (SELECT * FROM table WHERE T_ID = 1)
BEGIN
   UPDATE table SET ITERATION = ITERATION + 1 WHERE T_ID = 1
END
ELSE
BEGIN
   INSERT INTO table (T_ID, ITERATION, COMMENT)
   VALUES (1, 1, '')
END
COMMIT TRAN

Is this possible by using a normal SQL statement?

否 - 在一个语句中没有 "standard" SQL 结构用于 "upsert"(或 Merge)。不同的 SQL 系统已经实现了执行 "update if exists" 操作的机制,例如 MySQL 的 ON DUPLICATE KEY UPDATE 或 Oracle 和 SQL Server 的 MERGE 语法,但 "standard" SQL.

中什么也没有