求助:MySQL中删除指定State_Name数据行失败,求正确语句
问题解决方案
你的删除操作失效主要有几个明确原因,对应修正方式如下:
核心问题与修正代码
- 未指定表所属的schema:DELETE语句只写了表名
2017_annual,未加上库名zzz_schema,数据库无法准确定位到目标表。 - 未覆盖全部删除条件:仅处理了
State_Name = 'United States'的行,漏掉了District of Columbia的情况。
第一步:先验证要删除的目标行(避免误删)
SELECT * FROM zzz_schema.2017_annual WHERE State_Name IN ('United States', 'District of Columbia')
第二步:执行删除操作
DELETE FROM zzz_schema.2017_annual WHERE State_Name IN ('United States', 'District of Columbia')
额外注意(针对事务型数据库)
如果你的数据库是事务引擎(比如MySQL的InnoDB、PostgreSQL等),执行完DELETE后需要提交事务才能生效:
COMMIT;
其他排查点
- 确认你拥有该表的
DELETE权限,无权限会导致操作无效果。 - 删除前建议备份表,或用上述SELECT语句确认目标行,防止误删数据。
内容的提问来源于stack exchange,提问作者Rararasputin9090
相关产品推荐
相关产品推荐

