数据库全部删除方式 delete truncate

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值