2013-04-20 5 views
0

Я нашел this answer, но я не уверен, что он делает то, что я хочу. Похоже, он обновляет ВСЕ строки в таблице, где я только хочу их обновить.Вставить или обновить строку в SQLite

Моя таблица очень проста:

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

MacAddress является PK, и я хочу, чтобы просто быть в состоянии обновить имя, если оно существует, или добавить новую строку, если этого не произойдет, учитывая MacAddress как ссылки и a Name строка.

Это первый раз, когда я использую SQLite, поэтому я просто не могу правильно понять ответ Эрика Б.

+0

«ВСТАВИТЬ ИЛИ ЗАМЕНИТЬ В MyTable (« MacAddress »,« Name ») ЗНАЧЕНИЯ (« 1C-6F-65-C6-20-0B »,« PC2 ») – NINCOMPOOP

ответ

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-обновление как обновленное имя.

ПРИМЕЧАНИЕ. Если ваш MacAddress не является вашим основным ключом, этот метод не будет работать.

Смежные вопросы