回覆列表
  • 1 # 橘子皮夕夕

    我們在把資料插入資料庫時,有時候為了保證某些重複的資料不再重複的插入資料庫中,我們可以採用方法有: 1、給這幾個可以確定唯一的欄位新增唯一索引; 2、採用insert into select from not exists 的方式。 現在分析一下兩種方式的存在什麼缺陷: 方法一:雖然可以插入到資料裡面的資料是絕對的唯一,但是插入資料庫的效能不行,在需要批次的插入資料庫時,並且屬於同一事物時,很有可能因為有重複資料導致整批資料不能插入資料庫; 方法二:此方法有兩個坑,第一需要保證 select 出來的資料不存在重複的資料,如果存在重複的也會插入重複資料 ,當然也可以採用另一種方法執行sql 語句方式解決這個問題 ,就是select 查詢出來的資料都是一條 ,用批次執行命令的方式插入,但是這種效能比一次查出所有資料插入資料庫要差 ;第二需要保證比較的欄位不會為空,或者可能為空 ,比較時需要用 nvl 方法 ,為空時返回的值一樣,例如如下 SQL 語句: insert into table t select * from table_tmp tmp where not exists(select 1 from table t1 where tmp.a=t1.a and tmp.b=t1.b ) 如果 a,b均不可能為空 ,則可以直接 比較,如果可能為空 ,則需要 nvl(tmp.a,"NULL") = nvl(t1.a,"NULL") 進行比較。

  • 中秋節和大豐收的關聯?
  • 你覺得35歲的人突然猝死,說明了什麼?