Mặc dù tôi đang sử dụng mySQL (bây giờ), tôi không muốn bất kỳ SQL cụ thể DB nào.Câu hỏi SQL ANSI - cách chèn hoặc cập nhật bản ghi nếu nó đã tồn tại?
Tôi đang cố gắng chèn một bản ghi nếu nó không tồn tại và cập nhật một trường nếu nó tồn tại. Tôi muốn sử dụng ANSI SQL.
Bảng trông giống như sau:
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)
Tôi đã kết thúc bằng cách sử dụng INSERT .. ON UPDATE DUPLICATE KEY – morpheous
MS SQL Server 2005 không hỗ trợ cú pháp MERGE. Chỉ SQL Server 2008 trở lên mới hỗ trợ nó. –
Có vẻ như máy chủ sql 2005 beta đã có nó nhưng không phải là bản phát hành cuối cùng. Năm 2008 đã nhận được nó. Tham khảo: http://geekswithblogs.net/SabotsShell/archive/2005/08/20/50706.aspx – Alex