MySql insert插入操作的3個小技巧分享

字號:


    1.插入的數(shù)據(jù)來源自其他表
    表A有id, cola 字段
    表B有id, cola, colb...等字段,其中id都為主鍵,cola為相同名字的列
    現(xiàn)想將表B中colb>1000的記錄都插入表A中,SQL語句可以這樣寫:
    代碼如下:
    insert into A(id,cola) select id,cola from B where colb>1000
    2.插入時排除(忽略)重復記錄
    現(xiàn)表A中有一部分記錄了,再做如1中的插入操作可能遇到重復的key導致操作失敗
    代碼如下:
    insert ignore into A(id,cola) select id,cola from B where colb>1000
    使用insert ignore into插入時,會忽略掉表中已經(jīng)存在的記錄
    3.插入時遇到重復記錄做更新操作
    還有一個表C,與表B的結構類似,現(xiàn)需將表C中的數(shù)據(jù)插入A中,當遇到重復的記錄時,更新cola這一列為表C中的值
    代碼如下:
    insert into A(id,cola) select id,cola from C on duplicate key update A.cola=C.cola