Tôi có ví dụ này đơn giản, tôi không thể dường như để làm việc:Oracle MERGE không INSERT
MERGE INTO mytable mt
USING dual
ON (mt.id = 'AAA')
WHEN MATCHED THEN
UPDATE SET mt.name = 'updated'
WHEN NOT MATCHED THEN
INSERT (mt.id , mt.name)
VALUES ('AAA', 'Gooood');
Nếu một 'AAA' kỷ lục tồn tại trong bảng, nó được cập nhật thành công.
Nhưng nếu không tồn tại, nó không được chèn vào:
Affected rows: 0
Time: 0.003ms
Bất kỳ manh mối về những gì tôi đang làm sai?
công cụ mà bạn đang sử dụng mà đáp lại "bị ảnh hưởng hàng: 0 Thời gian: 0.003ms" Cái gì? –
Người ta tự hỏi liệu OP có hợp nhất mà không cam kết trong một phiên và truy vấn từ một phiên khác hay không. Hoặc liệu ứng dụng hiện có có giải thích đúng đầu ra từ tương tự của SQL% ROWCOUNT hay không. –
Có thể bảng 'mytable' của bạn có thể đòi hỏi nhiều hơn chỉ là' id' và 'name' để thực hiện chèn hợp lệ không? –