【发布时间】:2015-11-22 17:27:00
【问题描述】:
我只想删除数据而不是结构。
【问题讨论】:
-
您想用一条语句从 100 个不同的表中删除所有数据吗? (或者你想从一个表中删除 100 行...?)
-
我想从所有 100 个不同的表中删除数据,只需 1 条语句
-
您使用的是哪个 dbms? (其中一些有 TRUNCATE 语句,另一些则没有......)
我只想删除数据而不是结构。
【问题讨论】:
生成一个脚本。
Oracle 示例:
set head off
set pagesize 0
spool t.sql
select 'truncate table '||table_name||';' from all_tables
order by table_name
where rownum < 100
或者,如果需要 SQL Server 或 ANSI 方法,请使用 sys.tables 或 INFORMATION_SCHEMA.tables
select top 100
'truncate table ' + table_name + ';'
from INFORMATION_SCHEMA.tables;
MySQL
select CONCAT("truncate table ", table_name, ";")
from INFORMATION_SCHEMA.tables
limit 100;
【讨论】:
为每个表生成TRUNCATE TABLE语句并执行
您可以通过多种方式做到这一点,其中一些是
【讨论】: