Sql 如何删除db2中的所有表
我希望使用foregin键删除db2数据库中的所有表,而不删除和重新创建。如果您在Linux或Unix环境中Sql 如何删除db2中的所有表,sql,db2,sql-drop,Sql,Db2,Sql Drop,我希望使用foregin键删除db2数据库中的所有表,而不删除和重新创建。如果您在Linux或Unix环境中 #!/bin/ksh ## load profile of your instance owner db2 "connect to <db_name"> db2 -x "select tabschema,tabname from syscat.tables where type='T' and tabschema not like 'SYS%' with ur"|whil
#!/bin/ksh
## load profile of your instance owner
db2 "connect to <db_name">
db2 -x "select tabschema,tabname from syscat.tables where type='T' and tabschema not like 'SYS%' with ur"|while read a b
do
db2 "load from /dev/null of del replace into $a.$b nonrecoverable"
done
return 0
#/bin/ksh
##实例所有者的加载配置文件
db2“连接到”
删除文件的第一行和最后一行,并使用
db2 -tvf filename.
这样,我们还可以保存已删除的表的日志
PS:确保一次,文件中只存在您想要的表。不要搞错,删除一些系统表。如果您还想删除所有视图、索引、外键等:
select 'drop index "' || TRIM(INDSCHEMA) || '"."' || TRIM(INDNAME) || '";'
from SYSCAT.INDEXES
where UNIQUERULE = 'D'
and INDSCHEMA = (select current schema from SYSIBM.SYSDUMMY1);
select 'alter table "' || TRIM(TABSCHEMA) || '"."' || TRIM(TABNAME) || '" drop foreign key "' || TRIM(CONSTNAME) || '";'
from SYSCAT.TABCONST
where TYPE = 'F'
and TABSCHEMA = (select current schema from SYSIBM.SYSDUMMY1)
select 'alter table "' || TRIM(TABSCHEMA) || '"."' || TRIM(TABNAME) || '" drop unique "' || TRIM(INDNAME) || '";'
from SYSCAT.INDEXES
where UNIQUERULE = 'U'
and INDSCHEMA = (select current schema from SYSIBM.SYSDUMMY1);
select 'alter table "' || TRIM(TABSCHEMA) || '"."' || TRIM(TABNAME) || '" drop primary key;'
from SYSCAT.INDEXES
where UNIQUERULE = 'P'
and INDSCHEMA = (select current schema from SYSIBM.SYSDUMMY1);
select 'drop table "' || TRIM(TABSCHEMA) || '"."' || TRIM(TABNAME) || '";'
from SYSCAT.TABLES
where TYPE = 'T'
and TABSCHEMA = (select current schema from SYSIBM.SYSDUMMY1);
select 'drop view "' || TRIM(TABSCHEMA) || '"."' || TRIM(TABNAME) || '";'
from SYSCAT.TABLES
where TYPE = 'V'
and TABSCHEMA = (select current schema from SYSIBM.SYSDUMMY1);
好吧,大概和你之前3次的投票方式一样,再加上接受更多的答案(如果他们帮助了你)。
select 'drop index "' || TRIM(INDSCHEMA) || '"."' || TRIM(INDNAME) || '";'
from SYSCAT.INDEXES
where UNIQUERULE = 'D'
and INDSCHEMA = (select current schema from SYSIBM.SYSDUMMY1);
select 'alter table "' || TRIM(TABSCHEMA) || '"."' || TRIM(TABNAME) || '" drop foreign key "' || TRIM(CONSTNAME) || '";'
from SYSCAT.TABCONST
where TYPE = 'F'
and TABSCHEMA = (select current schema from SYSIBM.SYSDUMMY1)
select 'alter table "' || TRIM(TABSCHEMA) || '"."' || TRIM(TABNAME) || '" drop unique "' || TRIM(INDNAME) || '";'
from SYSCAT.INDEXES
where UNIQUERULE = 'U'
and INDSCHEMA = (select current schema from SYSIBM.SYSDUMMY1);
select 'alter table "' || TRIM(TABSCHEMA) || '"."' || TRIM(TABNAME) || '" drop primary key;'
from SYSCAT.INDEXES
where UNIQUERULE = 'P'
and INDSCHEMA = (select current schema from SYSIBM.SYSDUMMY1);
select 'drop table "' || TRIM(TABSCHEMA) || '"."' || TRIM(TABNAME) || '";'
from SYSCAT.TABLES
where TYPE = 'T'
and TABSCHEMA = (select current schema from SYSIBM.SYSDUMMY1);
select 'drop view "' || TRIM(TABSCHEMA) || '"."' || TRIM(TABNAME) || '";'
from SYSCAT.TABLES
where TYPE = 'V'
and TABSCHEMA = (select current schema from SYSIBM.SYSDUMMY1);