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表被删除的数据暂时没想好

猜你喜欢

转载自blog.csdn.net/a1015088819/article/details/79014139