SQL-从B表往A表插入数据,如果A表有相同数据不重复插入。(增加更新数据的方法)

INSERT INTO rel_tag_bed (tagId, bedNo, wardNo, userName, sex, age)
            SELECT
                tagId,
                bedNo,
                wardNo,
                userName,
                sex,
                age
            FROM rel b
            WHERE NOT exists(SELECT 1
                             FROM rel_tag_bed a
                             WHERE a.tagId = b.tagId AND a.bedNo = b.bedNo AND a.wardNo = b.wardNo)

以上只会拷贝第一次数据 第二次数据存在的不拷贝 也不会更新 若想更新请使用以下改造后的sql

前提判断条件这三个字段tagId, bedNo, wardNo需要一个联合唯一索引

INSERT INTO rel_tag_bed (tagId, bedNo, wardNo, userName, sex, age)
            SELECT
                tagId,
                bedNo,
                wardNo,
                userName,
                sex,
                age
            FROM rel AS b
ON DUPLICATE KEY UPDATE rel_tag_bed.userName= b.userName,
rel_tag_bed.sex= b.sex,
rel_tag_bed.age= b.age

A表被删除的数据暂时没想好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值