数据库全部删除方式 delete truncate

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

1、truncate

Session session=getSession();

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

2、delete

Session session=getSession();

List 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操作由于是对页操作,所以只需要申请页锁或者表锁。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部