Trong Oracle, được đưa ra một bảng dữ liệu đơn giản:Oracle sáp nhập hằng vào bảng duy nhất
create table data (
id VARCHAR2(255),
key VARCHAR2(255),
value VARCHAR2(511));
cho rằng tôi muốn "chèn hoặc cập nhật" một giá trị. Tôi có một cái gì đó như:
merge into data using dual on
(id='someid' and key='testKey')
when matched then
update set value = 'someValue'
when not matched then
insert (id, key, value) values ('someid', 'testKey', 'someValue');
Có cách nào tốt hơn? Lệnh này dường như có những hạn chế sau:
- Mỗi nhu cầu đen được gõ hai lần (hoặc thêm hai lần thông qua thiết lập thông số)
- Các "bằng kép" cú pháp dường như hacky
Nếu đây là cách tốt nhất, có cách nào xung quanh phải thiết lập mỗi tham số hai lần trong JDBC?
Nếu bạn đang sử dụng 10g, "DUAL" thậm chí còn ít bị hack hơn. trước đó nó là một cái bàn thật, trong 10g nó không phải. –