Chinaunix
标题:
如何删除不符合约束条件的记录?
[打印本页]
作者:
eaglec83
时间:
2015-08-17 17:21
标题:
如何删除不符合约束条件的记录?
请教一条sql语句:
如何删除不符合某唯一性约束条件的记录?
比如有一个表tableA,列名: tenant_id, id, subnet_id, dst_cidr
唯一性约束条件为: unique(tenant_id, dst_cidr)
现在数据里有一些记录不符合该条件, 需要删除这类记录
请问一下sql语句怎么写?
作者:
lyhabc
时间:
2015-08-17 22:46
不符合唯一性约束? 为啥还能插入数据库?
可以这样,新建一个表tableB,跟tableA表的表结构一样,唯一性约束也一样
然后把tableA的数据导入到tableB,这样不符合唯一性约束的记录就会过滤掉,然后改表名
tableA- 》tableA_T
tableB-》 tableA
作者:
eaglec83
时间:
2015-08-21 11:50
哦,没说清楚
是重新修改数据库
因此现有的记录可能不符合修改后的约束条件
不过已经找到方法了,不用这么麻烦
select * fromtableA where 列名A not in (select 列名A from accesslists group by 约束列A,约束列B);
因为delete不能用子查询,因此写个循环把找出来的记录删除
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2