SQL - for循环重复问题

Kas*_*ade 0 sql oracle plsql

只是想知道我将如何更改以下SQL,以便插入只发生在唯一的link_row实例上.因此,如果在seletc中拉回完全相同的值,我只想进行循环并第一次插入.

BEGIN   
      FOR LINK_ROW IN ( SELECT LINKTEXT, LINKURL, CORPID FROM LINKS )
      LOOP
          //Do insert here
Run Code Online (Sandbox Code Playgroud)

当我运行脚本时,我在主键违规时会出现错误,因为同一项在循环内插入两次.

提前致谢

Oll*_*lie 5

您可以使用UNIQUEor DISTINCT关键字来限制您的选择结果.

但是在一个语句中进行插入和选择会好得多.

INSERT INTO <table>
 VALUES (linktext, linkurl, corpid)
 SELECT UNIQUE linktext, linkurl, corpid
   FROM links;
Run Code Online (Sandbox Code Playgroud)