delete from命令用于删除表中的数据。
delete from命令格式:delete from 表名 where 表达式
如:
delete from sys_lamp where hcode ='111';
但是:
delete from sys_lamp l where l.hcode ='111'; 报错
[SQL]delete from sys_lamp l where l.hcode ='111';
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'l where l.hcode ='111'' at line 1
注
TRUNCATE TABLE app.`code` 删除表里数据
DELETE FROM app.config 删除表里数据
DROP TABLE app.config 删除表结构
delete是dml语句,可以使用触发器,外键以及事务,可以通过日志恢复,只删除表数据
truncate是ddl语句
drop是ddl语句
速度,一般来说: drop> truncate > delete
安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及. 使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够大. 想删除表,当然用drop
想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还 是用delete.
如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据/