1.delete------ 是逐行删除速度极慢,不适合大量数据删除。
Delete from tablename where 1=1
2.truncate---- 删除所有数据,保留表结构,不能撤消还原。
TRUNCATE TABLE tablename
3.drop-------- 删除表,数据和表结构一起删除,快速。
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for docker2
-- ----------------------------
DROP TABLE IF EXISTS `docker2`;
CREATE TABLE `docker2` (
`name` varchar(255) NOT NULL,
`path` varchar(500) DEFAULT NULL,
`docker1_name` varchar(255) NOT NULL,
`tag1` varchar(255) DEFAULT NULL,
`tag2` varchar(255) DEFAULT NULL,
`tag3` varchar(255) DEFAULT NULL,
`tag4` varchar(255) DEFAULT NULL,
`tag5` varchar(255) DEFAULT NULL,
`tag6` varchar(255) DEFAULT NULL,
`tag7` varchar(255) DEFAULT NULL,
`tag8` varchar(255) DEFAULT NULL,
`tag9` varchar(255) DEFAULT NULL,
PRIMARY KEY (`docker1_name`,`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
多表删除
1、delete from t1 where 条件
2、delete t1 from t1 where 条件
3、delete t1 from t1,t2 where 条件
4、delete t1,t2 from t1,t2 where 条件
前3者是可行的,第4者不可行。
也就是简单用delete语句无法进行多表删除数据 *** 作,不过可以建立级联删除,在两个表之间建立级联删除关系,则可以实现删除一个表的数据时,同时删除另一个表中相关的数据。
注意:
1,2这两种方法在处理大量数据的时候都比较慢,往往要等待许久才能清空完成。3种方式是首先对原先表进行删除,然后再重建,已达到清楚表数据的效果,要比前两种方式快很多。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)