赞
踩
TRUNCATE table_name;
即可,数据表会清空,而且自增id也会变回0;
但在 postgresql 则稍有不同,因为 postgresql 的自增id是通过序列 sequence来完成的,
所以清空数据后,还需要还原序列 sequence:
TRUNCATE bigtable, fattable RESTART IDENTITY;
官方文档:https://www.postgresql.org/docs/9.2/static/sql-truncate.html
另一种方式:(因为版本不同,可能命令不同)
truncate table table_name; alter sequence seq_name start 1;
参考:https://stackoverflow.com/questions/13989243/sequence-does-not-reset-after-truncating-the-table
- PostgreSQL清空表并保留表结构、清空数据库还原数据库为新建时的状态的方法
-
-
-
- PostgreSQL
-
- 清空表并保留表结构
- 一般情况下,我们使用delete删除表中数据,但是delete是一条数据一条数据来删除表中的数据,直至表清空(保留表结构),但是当数据量很大时,它耗时较久。
- 其实,删除表数据但保留表结构使用truncate更快速安全,使用方法为:
-
- //当表没有其他关系时
- TRUNCATE TABLE tablename;
- //当表中有外键时,要用级联方式删所有关联的数据
- TRUNCATE TABLE tablename CASCADE;
-
- 清空数据库还原数据库为新建时的状态
- 在postgresql中,创建数据库时会自动创建public模式,一般我们把表都保存在该模式中,因此直接删除该模式再重新创建该模式。
- 若数据在其他模式中,则把public换为数据表所在模式即可。
-
- //删除public模式以及模式里面所有的对象
- DROP SCHEMA public CASCADE;
- //创建public模式
- CREATE SCHEMA public;

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。