簡體   English   中英

如果使用SQL不存在,則在表中插入一行

[英]Insert a row into the table if it does not exist using SQL

我想在表中插入一行(如果它不存在)。 我想檢查表中是否存在col1 , col2組合。如果不是我必須插入數據。我寫了一個如下所示的查詢,但它不起作用。可以幫我一些。

INSERT INTO TABLE1 (COL1 , COL2 , COL3, COL4) 
VALUES ( 1234 , 4567 , 'test_name_int' , 'test_disp_name' )
WHERE NOT EXISTS ( SELECT * FROM TABLE1 WHERE COL1 = 1234 and COL2 = '4567');

MERGE INTO是另一個不錯的選擇。 如果需要,您也可以執行更新。

這將檢查源和目標的col1,col2是否匹配。 如果他們不這樣做,那么它確實insert 你也可以在需要的時候使用WHEN MATCHED THEN UPDATE

MERGE INTO TABLE1 d
     USING (SELECT 1235 COL1,
                   4568 COL2,
                   'test_name_int' COL3,
                   'test_disp_name' COL4
              FROM DUAL) s
        ON (d.COL1 = s.col1 AND d.COL2 = s.COL2)
WHEN NOT MATCHED
THEN
   INSERT     (COL1,
               COl2,
               COl3,
               COl4)
       VALUES (s.COl1,
               s.COL2,
               s.COL3,
               s.COL4);

也許是這樣的:

Insert Into TABLE1
Select  1234 , 4567 , 'test_name_int' , 'test_disp_name'
From Dual
WHERE NOT EXISTS ( SELECT * FROM TABLE1 WHERE COL1 = 1234 and COL2 ='4567')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM