Tôi đang tìm một câu lệnh SQL chuẩn "UPSERT
". Một cuộc gọi để chèn và cập nhật nếu tồn tại.UPSERT tiêu chuẩn SQL gọi
Tôi đang tìm kiếm một cuộc gọi hiệu quả, hiệu quả và đa nền tảng.
Tôi đã xem MERGE
, UPSERT
, REPLACE
, INSERT .. ON DUPLICATE UPDATE
nhưng không tuyên bố nào đáp ứng được nhu cầu.
BTW Tôi sử dụng MYSQL và HSQLDB cho các đơn vị. Tôi hiểu rằng HSQLDB bị hạn chế và có thể không bao gồm những gì tôi cần, nhưng tôi không thể tìm thấy một cách tiêu chuẩn ngay cả khi không có nó. Một tuyên bố rằng chỉ MYSQL và HSQLDB cũng sẽ là đủ cho bây giờ.
Tôi đã xem xét một lúc và không thể nhận được câu trả lời.
bảng của tôi:
CREATE TABLE MY_TABLE (
MY_KEY varchar(50) NOT NULL ,
MY_VALUE varchar(50) DEFAULT NULL,
TIME_STAMP bigint NOT NULL,
PRIMARY KEY (MY_KEY)
);
Bất kỳ ý tưởng?
Thanx;)
'INSERT .. ON DUPLICATE UPDATE' là chìa khóa trong 'mYSQL'. bạn có thể hiển thị một số bản ghi hoặc có thể cấu trúc bảng? –
Đúng nhưng chỉ được hỗ trợ trong MYSQL. HSQLDB và tất cả những người khác không sử dụng nó ... – BobTheBuilder
có một hợp nhất ANSI (http://en.wikipedia.org/wiki/Merge_%28SQL%29), nhưng nó không được thực hiện trong tất cả các DBMS. Vì vậy, không có hy vọng cho một lệnh phổ quát. –