上一篇
📢 最新消息:据2025年8月AWS官方通知,Amazon Aurora MySQL将于8月31日弃用3.05/3.06/3.07版本,建议用户主动升级至兼容MySQL 8.0.38的新版,MySQL 8.0.38官方二进制包已发布,支持更高效的删除操作!
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM table_name [WHERE condition] [ORDER BY column] [LIMIT row_count];
-- 删除ID=10086的订单记录 DELETE FROM orders WHERE id = 10086;
-- 清空表(建议用TRUNCATE替代) DELETE FROM logs;
-- 删除订单及对应明细(需确认外键关系) DELETE o, od FROM orders o JOIN order_details od ON o.id = od.order_id WHERE o.total_amount < 100;
-- 保留email最小ID的记录 DELETE e1 FROM employees e1, employees e2 WHERE e1.id > e2.id AND e1.email = e2.email;
-- 假设email字段有索引 DELETE FROM users WHERE email = 'test@example.com';
START TRANSACTION; DELETE FROM big_table WHERE create_time < '2025-01-01' LIMIT 1000; COMMIT; -- 重复执行直到影响行数为0
-- TRUNCATE会重置自增ID且无法回滚 TRUNCATE TABLE temp_data;
BEGIN; DELETE FROM accounts WHERE status = 'inactive'; -- 检查影响行数后再COMMIT ROLLBACK; -- 出错时及时回滚
场景 | 推荐语句 | 特点 |
---|---|---|
精准删除 | DELETE ... WHERE id=1 |
安全可回滚 |
清空表 | TRUNCATE TABLE |
快但无法触发触发器 |
删除重复数据 | 自连接DELETE | 需测试性能 |
大批量删除 | 分批LIMIT+事务 | 避免锁表 |
MySQL 8.0.38新增:
💡 :DELETE语句看似简单,实则暗藏玄机,记住三原则——备份先行、条件明确、分批执行,就能避开90%的坑点!遇到复杂场景时,不妨先写SELECT验证条件,再替换成DELETE更稳妥哦~
本文由 业务大全 于2025-08-27发表在【云服务器提供商】,文中图片由(业务大全)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://xdh.7tqx.com/wenda/754867.html
发表评论