MySQL ERROR: UNKNOWN COLUMN IN ‘FIELD LIST’
Parvez 【hudson译】
2022年8月25号
本文将介绍如何修复MYSQL中经常出现的 UNKNOWN COLUMN IN ‘FIELD LIST’
错误,以及出现上述错误的最常见原因。
字段列表中的未知列错误?
当您在SQL脚本中输入MySQL找不到的列名时,会发生字段列表中的MySQL未知列错误。 我创建了一个“employee”表并插入了如下数据: 当您尝试将数据插入表中不存在的列时,MySQL会抛出以下错误消息:

选项1:找不到列名
让我们创建一个SQL,将数据插入不存在的列:
INSERT INTO employees(emp_name) VALUES ('Tim');
下面的错误是因为employees表中没有emp_name列。

选项2:列值未使用引号包裹
有时,我们没有对字符串值使用引号,也会抛出相同的错误。
INSERT INTO employees(emp_name) VALUES (Tim);
错误:
-- ERROR 1054 (42S22): Unknown column 'Tim' in 'field list'
值Tim必须用引号(“或”)括起来。MySQL会错误地解释您试图将不同列中的值放入目标列的意图。
选项3:调用不带@符号的变量
如果调用没有@符号的变量,也会抛出相同的错误。
SET @name="Tim";
SELECT name;
错误消息:
-- ERROR 1054 (42S22): Unknown column 'name' in 'field list'
选项4:MySQL触发器问题
有时,我们在MySQL中定义了触发器,这些触发器具有不存在的列,当任何记录插入时,都会触发触发器。
create trigger insert_on_emp
after insert
on employee for each row
begin
insert into department (name, dept) values (new.name, 'devops');
end##
delimiter ;
要解决这个错误,我需要重写触发器并从insert命令中删除dept列,或者更改表 'department' 并添加列 'dept'。