数据库全部删除方式 delete truncate

来源:互联网 发布:网络项目投标书 编辑:程序博客网 时间:2024/06/04 00:36

删除数据库内所有数据,但保留属性的方式

1、truncate

Session session=getSession();

Query query=session.createSQLQuery("truncate table gantDemo");

2、delete

Session session=getSession();

List<gantDemo> tasks=null;

  Query query=session.createQuery("from gantDemo");
   
tasks=query.list();

 for (gantDemo task : tasks) {

    session.delete(task);
  }

区别:1、delete是一行一行操作,并且把记录都存进日志文件,而truncate是对每一页进行操作,在日志中,仅仅记录释放页面的这个动作,而不记录每一行。所以

delete后再添加数据时,索引会一直递增。而truncate时,索引会重新计数。

2、TruncateDelete使用锁通常较少。

DELETE由于是一行一行删除,所以需要对处理的行进行加锁,而且是行锁。TRUNCATE操作由于是对页操作,所以只需要申请页锁或者表锁。

0 0