比较来自世界各地的卖家的域名和 IT 服务价格

SQL: 如果它不存在,如何更新或插入?

我有插入 SQL 下面工作正常,但我想检查一下 DATE=xxxx, NAME =xxxx 和 JOB = xxx 和更新 HOURS, 如果它们存在否则插入新字符串。 IS 这个有可能 SQL?


"INSERT INTO TABLE /NAME, DATE, JOB, HOURS/ VALUES /'BOB', '12/01/01', 'PM','30'/;


尝试以下或用相同的结果替换,每次添加新行。


add_time = conn.prepareStatement/"INSERT OR REPLACE INTO RESOURCE /NAME, DATE, JOB, HOURS/ VALUES /'"+name+"', '" + date + "', '"+job+"','"+hours+"'/;"/;


例如:

如果是下面的话 DB, 约翰想更新他的手表,他将检查这个名称,日期,任务与尝试插入的值一致,如果它们仅更新 HOURS. 否则,如果它们都不存在 / 约翰可能会录制另一个手表 DATE 或者 JOB/, 插入新字符串。

此外,其他人还将在同一个方面注册他们的手表和各种角色 DB, 如下。

约翰 / 12/12/2012 / 清洁工 / 20
约翰 / 12/12/2012 / 总经长 / 10
吉姆 / 12/10/2011 / 清洁工 / 5
已邀请:

风见雨下

赞同来自:

您可以使用
REPLACE INTO

通过以下方式:


REPLACE INTO mytable /NAME, DATE, JOB, HOURS/
VALUES /'BOB', '12/01/01', 'PM','30'/


但为了使其工作,您必须创建一个唯一的索引:


CREATE UNIQUE INDEX myindex
ON mytable/NAME, DATE, JOB/


请注意,您必须使用这种字段组合以获得唯一索引,这将确定两条线是否被认为是相同的,并且应该更换,而不是插入。

[/url]
.

请注意,如果您评论了创建独特指数,他
[/url]
.

窦买办

赞同来自:

我认为这在此前已经问过 sqlite:

https://coderoad.ru/3634984/
似乎他们有这个语法:


INSERT OR REPLACE INTO TABLE /NAME, DATE, JOB, HOURS/ VALUES /'BOB', '12/01/01', 'PM','30'/;

要回复问题请先登录注册