我有一个包含多个表的数据库,这些表的结构都是一样的,只有一个名为date
的列和一堆包含各种数据的其他列。
我可以从单个表中删除重复项,如下所示:
DELETE FROM table1
WHERE EXISTS (
SELECT 1 FROM table1 p2
WHERE table1.date = p2.date
AND table1.ROWID > p2.ROWID
)
字符串
我有大约30 tables
要定期清理。虽然我可以为每个表运行上面的代码,但在获得数据库中的表列表后,是否有一种方法可以通过for loop
来执行此操作:
SELECT name FROM sqlite_master WHERE type='table'
型
2条答案
按热度按时间qvsjd97n1#
下面是一个为每个表生成并运行单独的SQL语句的脚本:-->循环遍历表列表并从每个表中删除重复项
字符串
2ic8powd2#
您可以使用
PL/SQL block
来实现这一点,请试试这个脚本:
字符串
此块将为每个表执行
DELETE
语句,removing duplicates
基于指定的条件。