我对MySQL插件有一个奇怪的问题。它无法找到最后一个字段,无论它的名字是什么:
insert into
`exams` (`abbr`, `due_days`, `name`, `section_id`, `id`)
values
('PT', 1, 'PT - TIEMPO DE PROTROMBINA.', 2, 129);
--------------------------------------------------------------------
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'id' in 'field list' (SQL: insert into `exams` (`abbr`, `due_days`, `name`, `section_id`, `id`) values (PT, 1, PT - TIEMPO DE PROTROMBINA., 2, 129)
我的表:
CREATE TABLE `exams` (
`id` int(11) NOT NULL,
`name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`abbr` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`due_days` int(11) NOT NULL,
`section_id` int(11) NOT NULL,
`created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
id
列存在,但MySQL无法找到它。insert into
`exams` (`abbr`, `due_days`, `name`, `section_id`)
values
('PT', 1, 'PT - TIEMPO DE PROTROMBINA.', 2);
--------------------------------------------------------------------
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'section_id' in 'field list' (SQL: insert into `exams` (`abbr`, `due_days`, `name`, `section_id`) values (PT, 1, PT - TIEMPO DE PROTROMBINA., 2)
最后一栏有错误...... 我在不同的机器上测试了MySQL 5.6和MariaDB 10.0,但我得到了确切的结果。
我正在使用Laravel 5,我甚至可以从查询构建器中删除反引号,但这不起作用。
答案 0 :(得分:2)
我认为您从某些PDF或其他地方复制并过去了您的查询(或查询的一部分),我在自己的系统上尝试过,当我从您的问题中复制查询时,我得到了错误(我猜)他们是一些不可打印的代码 - Unicode字符,那些不可见)。然后我手工重写查询,它有效!检查如下:
注意:我没有更改您的创建查询。刚从我的MySQL解释器复制粘贴你的问题。
手动重写你的查询它有效!我刚刚编辑了id\
)和双引号字符串。
试一试!!
答案 1 :(得分:2)
id是插入时必须有一个值的主键,也许它应默认为自动增量
只需更改:
`id` int(11) NOT NULL,
为:
`id` int(11) NOT NULL AUTO_INCREMENT,