如何删除不符合约束条件的记录?
请教一条sql语句:如何删除不符合某唯一性约束条件的记录?
比如有一个表tableA,列名: tenant_id, id, subnet_id, dst_cidr
唯一性约束条件为: unique(tenant_id, dst_cidr)
现在数据里有一些记录不符合该条件, 需要删除这类记录
请问一下sql语句怎么写? 不符合唯一性约束? 为啥还能插入数据库?
可以这样,新建一个表tableB,跟tableA表的表结构一样,唯一性约束也一样
然后把tableA的数据导入到tableB,这样不符合唯一性约束的记录就会过滤掉,然后改表名
tableA- 》tableA_T
tableB-》 tableA
哦,没说清楚
是重新修改数据库
因此现有的记录可能不符合修改后的约束条件
不过已经找到方法了,不用这么麻烦
select * fromtableA where 列名A not in (select 列名A from accesslists group by 约束列A,约束列B);
因为delete不能用子查询,因此写个循环把找出来的记录删除
页:
[1]