MySQL 错误消息 "#1064 - You have an error..."

标签 mysql sql insert

我使用的是 MySQL 5.6.33。

我的表定义是:

CREATE TABLE test (
  id int(11) NOT NULL AUTO_INCREMENT,
  a1 varchar(255) NOT NULL,
  a2 varchar(255) NOT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

执行INSERT语句

INSERT INTO test ('a1', 'a2') VALUES ('hello', 'world');

抛出丑陋的错误消息

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行 ''a1', 'a2') VALUES('hello', 'world')' 附近使用的正确语法

我尝试修改 AUTO_INCRMENT,包括主键,如下所示

INSERT INTO test ('id', 'a1', 'a2') VALUES (NULL,'hello', 'world');

但是没有任何效果。总是同样的错误。

我找不到任何可以解决此问题的答案。如何进行?

最佳答案

您不应该在列名称中使用 ' 单引号

INSERT INTO test ('a1', 'a2') VALUES ('hello', 'world');

相反

INSERT INTO test (a1, a2) VALUES ('hello', 'world');

关于MySQL 错误消息 "#1064 - You have an error...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46511129/

相关文章:

mysql - 为什么这个二级预加载不起作用?

mysql - 使用索引优化sql查询

PHP MySQL 数据库类不适用于插入

mysql - JPA查询查找跨越创建时间间隔的记录

mysql - jdbcTemplate 传入空值

php - 获取数据 : Complex MySQL query, 与 PHP 周期

sql - Oracle SQL 在同一个表的多个上选择 null

sql - 在sql中按ID选择多行的最佳方法是什么?

mysql - 如何使用vb.net向Mysql数据库托管插入数据

c++ - ODBC 写入 blob 示例 Oracle C++