我有一些包含很多表的数据库,我想从表中清除数据,我该怎么做?
就像在数据库DELETE FROM table_name;
感谢。
答案 0 :(得分:1)
一种方法是创建一个脚本,为您生成所有的sql语句。这是linux的一个版本:
echo "select concat('truncate ', table_name, ';') as '' from \
information_schema.tables where table_schema='YOURDATABASE';"\
|mysql -u USER -p > /tmp/truncate-all-tables.sql
答案 1 :(得分:1)
另一种选择
如果要重置自动增量,请执行 然后更改转储文件以重置它
如果您使用的是Linux,可以通过bash脚本完成,例如
for table in $(mysql -N <<<"show tables from your_db")
do
mysql -N <<< "truncated $table"
done
答案 2 :(得分:0)
最简单的方法是从.sql批处理文件或脚本语言基于每个表发出DELETE或TRUNCATE命令。 (虽然可以询问表模式信息并使用它,但这可能不合适,具体取决于您是否具有所需的访问权限以及相关表是否遵循SELECTable命名约定。)
顺便提一下,虽然您可以使用DELETE,但这不会回收使用过的磁盘空间,任何auto_increment字段都会记住以前的ID。 (如果要恢复磁盘空间并将ID重置为1,请使用“TRUNCATE <table name>;
”。)