赞
踩
一般情况下我们需要清空表用到delete,但是delete是一条一条数据来删除的,直到表清空,但是遇到数据量大的时候差距就很明显了,耗时久。
当然有更好的办法,删除表数据但保留表结构使用truncate更快速也更安全。
在MySQL中一般我们清空表会用
delete from tablename
建议用另外一种方式
TRUNCATE table_name;
数据表会清空,而且自增id也会变回0;
但是在PG中,需要加一步操作因为postgresql中是通过序列来进行id自增的。
先清表(tablename 换成你的表名)前提你这张表没有多余关联关系时
truncate table tablename;
表中有外键时,要用级联方式删所有关联的数据
truncate table tablename cascade;
再设置序列起始值为1(tablename_id_seq 换成你的对应序列名字)
alter sequence tablename_id_seq start 1;
两条sql都要·执行,例
- <delete id="deleteAll">
- truncate table tablename;
- </delete>
- <update id="resSequence">
- alter sequence tablename_id_seq restart with 1;
- </update>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。