Obwohl ich mySQL (für jetzt) verwende, möchte ich keine DB spezifische SQL.ANSI-SQL-Frage - wie fügt man einen Datensatz ein oder aktualisiert ihn, wenn er bereits existiert?
Ich versuche, einen Datensatz einzufügen, wenn es nicht existiert, und ein Feld zu aktualisieren, wenn es existiert. Ich möchte ANSI SQL verwenden.
Die Tabelle sieht etwa so aus:
create table test_table (id int, name varchar(16), weight double) ;
//test data
insert into test_table (id, name, weight) values(1,'homer', 900);
insert into test_table (id, name, weight) values(2,'marge', 85);
insert into test_table (id, name, weight) values(3,'bart', 25);
insert into test_table (id, name, weight) values(4,'lisa', 15);
If the record exists, I want to update the weight (increase by say 10)
Ich endete mit der INSERT .. ON DUPLICATE KEY UPDATE – morpheous
MS SQL Server 2005 unterstützt nicht MERGE-Syntax. Nur SQL Server 2008 und höher unterstützen es. –
Sieht aus wie SQL Server 2005 Beta hatte es aber nicht die endgültige Version. 2008 hat es geschafft. Referenz: http://geekswithblogs.net/SabotsShell/archive/2005/08/20/50706.aspx – Alex