MySQL 常见错误: UNKNOWN COLUMN IN ‘FIELD LIST’

1,795 阅读1分钟

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'