【发布时间】:2014-05-31 10:21:46
【问题描述】:
如何从数据库中的所有表中删除所有记录,其中该表有一个名为 systemid 的列,其中 systemid 不等于 1 或 2?
所以我需要查看该表是否包含某个列名,如果是,则检查该列的所有记录的值,如果不是 1 或 2,则删除。在数据库中的所有表上。
尝试清理开发数据库。
--- 更新 ---
我发现了这个 SO 线程:SQL Server : check if table column exists and remove rows
详细说明如下:
IF EXISTS( SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'TAB1')
IF EXISTS( SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'TAB1' AND COLUMN_NAME = 'COL1')
delete TAB1 where COL1 not in (select COL2 from TAB2);
但是由于缺乏知识和经验,我无法通过 SQL 查询正确地完成我想要实现的目标。谁能提供一个带有解释的示例代码?
谢谢各位大侠!
【问题讨论】:
-
使用
information_schema.columns.. -
如上所述,您可以使用 information_schema 表/列。我将创建一个存储过程,它读取 information_schema 并为 select created delete 语句中的每一行
-
我现在会调查一下,谢谢
标签: mysql sql sql-delete