DELETE用于删除表中的记录。

语法

DELETE FROM table_name
[ WHERE condition ]

示例

  • 删除CUSTOMER表中name为张三的数据:
    DELETE FROM customer WHERE name='张三';
  • 删除CUSTOMER表中所有的行:
    DELETE FROM customer WHERE 1=1;

注意事项

  • 删除全表数据且表数据量非常大时会造成严重性能问题。一般表记录数超过10万行,建议通过删表重建方式替代删除全表数据;
  • DELETE暂时不支持带表的别名;
  • DELETE WHERE条件中暂时不支持子查询和函数;
  • 二级分区表的DELETE语句必须包含二级分区条件。删除TRADE表2月份的数据(biz_date为二级分区列)
    DELETE FROM trade where biz_date>=20180201 and biz_date<=20180228;
  • 频繁使用DELETE操作也会造成性能问题,强烈建议WHERE条件中带上主键,性能会达到最优;