在SQLite中插入或更新行

时间:2013-04-20 14:50:03

标签: sql sqlite upsert

我找到this answer,但我不确定它是否符合我的要求。看起来它更新了表中的所有行,我只想更新一行。

我的表非常简单:

MacAddress           |    Name
1C-6F-65-C6-20-0B    |    Logan-PC
DE-AD-BE-EF-F0-0D    |    PC1
...

MacAddress是PK,如果名称存在,我想简单地更新名称,如果不存在则添加新行,给定MacAddress作为参考和Name字符串。

这是我第一次使用SQLite,所以我可能无法正确理解Eric B的答案。

1 个答案:

答案 0 :(得分:1)

如果您的MacAddress是表格中的主键,那么您发布的答案似乎对我有用。

insert or replace into yourtable (macaddress, name)
values ('1C-6F-65-C6-20-0B', 'Logan-PC');

insert or replace into yourtable (macaddress, name)
values ('1C-6F-65-C6-20-0B', 'Logan-PC-Updated');

SQL Fiddle Demo

这将产生一行,Logan-PC-Updated作为更新的名称。

注意:如果您的MacAddress不是您的主键,则此方法将无效。