可能是什么原因? 在同一个DB上,select语句按预期工作:
select id from line where line.id = 298;
但是以下删除语句失败:
delete from line where line.id = 298;
有错误:
Unknown column 'line_id' in 'where clause'
查询输出:
mysql> delete from line where line.id = 298;
ERROR 1054 (42S22): Unknown column 'line_id' in 'where clause'
mysql> select id from line where line.id = 298;
+-----+
| id |
+-----+
| 298 |
+-----+
1 row in set (0.00 sec)
mysql> describe line;
+--------------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+---------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| service_id | int(11) | NO | MUL | NULL | |
| src_site_id | int(11) | NO | MUL | NULL | |
| dest_site_id | int(11) | NO | MUL | NULL | |
+--------------+---------+------+-----+---------+----------------+
4 rows in set (0.01 sec)
答案 0 :(得分:6)
SHOW TRIGGERS;
如果有人在没有检查构建时触发了触发器(羞辱他,这是一件非常糟糕的事情),那么它会在没有告诉你任何事情的情况下使你的查询失败。
这真的很棘手,因为你无法直接看到错误是触发器相关的,如果你不使用触发器/不知道它们是一些,唯一的方法是在丢弃之后自己重建表
答案 1 :(得分:0)
尝试创建要删除的表的别名:
DELETE FROM line l WHERE l.id = 298
这应该可以正常工作