mysql中的delete和truncate_MySQL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql中的delete和truncate_MySQL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1512字,纯文字阅读大概需要3分钟。
内容图文
![mysql中的delete和truncate_MySQL](/upload/InfoBanner/zyjiaocheng/574/c44de84d19ab46c0b11a93f27c611553.jpg)
mysql中的delete和truncate
在MySQL数据库中,DELETE语句和TRUNCATE TABLE语句都可以用来删除数据,但是这两种语句还是有着其区别的,下文就为您介绍这二者的差别所在空mysqll表内容常见的有两种方法:一种delete,一种是truncate 。 不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容。效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。
一、truncate的语法结构为:
Sql代码
TRUNCATE [TABLE] tbl_name
下面给出一个简单的小示例:
我想删除 test表中所有的记录,可以使用如下语句:
Sql代码
truncate table test;
二、delete的效果有点像将mysql表中所有记录一条一条删除到删完,而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。
其语法结构是:
Sql代码
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
[WHERE where_definition]
[ORDER BY ...]
[LIMIT row_count]
按照上面的语法结构,我想删除 test表中所有 infoId等于abced的记录,
就可以使用如下SQL语句:
Sql代码
delete from test where infoId = 'abced';
注意事项:
从语法结构中,我们可以看出,和update语法一样,我们是可以省略where子句的。不过,这是一个很危险的行为。因为如果不指定where子句,delete将删除表中所有的记录,而且是立即删除,即使你想哭都没地方,也没时间,因为你需要马上和主管承认错误,并且立即找出mysql日志,来回滚记录。
总结
不过truncate命令快规快,却不像delete命令那样对事务处理是安全的。因此,如果我们想要执行truncate删除的表正在进行事务处理,这个命令就会产生退出并产生错误信息。
bitsCN.com
内容总结
以上是互联网集市为您收集整理的mysql中的delete和truncate_MySQL全部内容,希望文章能够帮你解决mysql中的delete和truncate_MySQL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。