Thirumal Asked: 2016-10-26 22:00:18 +0800 CST2016-10-26 22:00:18 +0800 CST 2016-10-26 22:00:18 +0800 CST 如何从postgresql中的所有表中删除所有行?[复制] 772 是否有任何 SQL 查询可以从 postgresql 中的所有表中删除所有行? postgresql 1 个回答 Voted Best Answer Vitaly Pyslar 2016-10-27T01:58:17+08:002016-10-27T01:58:17+08:00 方法1:使用一组sql语句创建一个文件来截断每个表,然后从文件中执行这些语句。 testdb=# \t Tuples only is on. testdb=# \o truncate_all_tables.sql testdb=# SELECT 'TRUNCATE ' || table_name || ';' FROM information_schema.tables WHERE table_schema='public' AND table_type='BASE TABLE'; testdb=# \o testdb=# \t Tuples only is off. testdb=# \i truncate_all_tables.sql TRUNCATE TABLE_NAME CASCADE TRUNCATE TABLE_NAME CASCADE TRUNCATE TABLE_NAME CASCADE TRUNCATE TABLE_NAME CASCADE TRUNCATE TABLE_NAME CASCADE 方法2:仅使用模式创建数据库转储,重新创建数据库并恢复转储。 # pg_dump -U postgres -v -Fc -s -f testdb.dump testdb # dropdb -U postgres testdb # createdb -U postgres testdb # pg_restore -U postgres -v -d testdb testdb.dump
方法1:使用一组sql语句创建一个文件来截断每个表,然后从文件中执行这些语句。
方法2:仅使用模式创建数据库转储,重新创建数据库并恢复转储。