1.設定唯一建
前提是:有唯一建可用,but基本很難有這樣的場景。
datum有唯一建。
create
table
`datum`
(`id`
int(11)
notnull
auto_increment
,`mid`
int(11)
notnull
default
'0',
`rong_liang`
varchar
(255
)collate utf8mb4_general_ci not
null
default'',
`yong_liang`
varchar
(255
)collate utf8mb4_general_ci not
null
default'',
`level
`varchar
(255
)collate utf8mb4_general_ci not
null
default'',
`adapt_niandu`
varchar
(255
)collate utf8mb4_general_ci not
null
default'',
`perrfect_niandu`
varchar
(255
)collate utf8mb4_general_ci not
null
default'',
`datum_name`
varchar
(255
)collate utf8mb4_general_ci not
null
default'',
`oil_type`
varchar
(255
)character
set utf8mb4 collate utf8mb4_general_ci not
null
default'',
`buchong2`
varchar
(255
)collate utf8mb4_general_ci not
null
default'',
`buchong3`
varchar
(255
)character
set utf8mb4 collate utf8mb4_general_ci not
null
default'',
primary
key(
`id`),
unique
key`mid`
(`mid`))
engine
=innodb
auto_increment
=1048582
default
charset
=utf8mb4 collate
=utf8mb4_general_ci;
//插入語句
2.使用臨時表dual
前提:組裝好資料resultlist,每行資料是乙個dual,使用
union all成為一張新錶a,插入的時候排除掉tables裡面已經有的資料。
insert
into
tables
(audit_id,acc_id,mid,model_memo_id,operate_type,common_group_id,position_id,creator,modifier)
select
#,#,mid,memoid,#,#,positionid,#,# from(
select
*from
("resultlist" item=
"res" separator=
"union all"
>
select
# mid, # memoid, # positionid from dual
<
/foreach>
) a where
notexists
(select
1from
tables w
where w.acc_id=
# and w.audit_id =# and w.mid=a.mid and w.model_memo_id=a.memoid and w.position_id = a.positionid and w.is_deleted = 0)) b
從另一張表插入不重複的資料插入到新錶
insert
into table2(audit_id, acc_id, mid, position_id, model_memo_id, operate_type)
select
*from
(select audit_id, acc_id, mid, position_id, model_memo_id, operate_type
from table1 a
where a.audit_id =
26and a.is_deleted =
0and
notexists
(select
1from table2 b
where b.is_deleted =
0and b.audit_id = a.audit_id and a.acc_id = b.acc_id and a.mid = b.mid
and a.position_id = b.position_id and a.model_memo_id = b.model_memo_id and a.operate_type = b.operate_type)
) c
eg:
insert into tb(newsid,a,b) select newsid,a,b from ta a where not exists(select 1 from tb b where a.newsid=b.newsid and a.a=b.a)
diango 批量匯入不重複資料
去年研究匯入資料的時候寫了乙個批量匯入資料的指令碼,但有個問題,如果匯入這批資料在資料庫中已經存在,那麼我們匯入的資料不就重複了麼,本文就討論如何解決這個問題?程式如下 coding utf 8 import os os.environ.setdefault django settings modu...
MySQL 避免重複資料的批量插入與批量更新
我們在向資料庫裡批量插入資料的時候,會遇到要將原有主鍵或者unique索引所在記錄更新的情況,而如果沒有主鍵或者unique索引衝突的時候,直接執行插入操作。這種情況下,有三種方式執行 直接每條select,判斷,然後insert,毫無疑問,這是最笨的方法了,不斷的查詢判斷,有主鍵或索引衝突,執行u...
mysql批量新增重複資料
很多時候我們都需要大量的資料,下面就來講一講mysql如何新增大量資料 此方法效率不一定會高 但是這個方法一定是最簡單的 首先,建一張表,字段沒有要求 測試用,我就隨便準備寫了兩個字段 users表 欄位name和pwd 然後我們事先新增幾條資料 然後我們執行批量新增的語句 insert into ...