错误1064 (42000):您的SQL语法中有一个错误;请查看与您的MySQL服务器版本对应的手册,以了解要使用的正确语法。

内容来源于 Stack Overflow,遵循 CC BY-SA 4.0 许可协议进行翻译与使用。IT领域专用引擎提供翻译支持

腾讯云小微IT领域专用引擎提供翻译支持

原文
Stack Overflow用户 修改于2014-02-25
  • 该问题已被编辑
  • 提问者: Stack Overflow用户
  • 提问时间: 2014-02-25 17:18

当我试图在我的表中插入一行时,我得到了以下错误:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL server version for the right syntax to use near ''filename') 
VALUES ('san', 'ss', 1, 1, 1, 1, 2, 1, 1, 'sment', 'notes','sant' at line 1

请帮帮我。

mysql> desc risks;
+-----------------+--------------+------+-----+---------------------+----------------+
| Field           | Type         | Null | Key | Default             | Extra          |
+-----------------+--------------+------+-----+---------------------+----------------+
| id              | int(11)      | NO   | PRI | NULL                | auto_increment |
| status          | varchar(20)  | NO   |     | NULL                |                |
| subject         | varchar(100) | NO   |     | NULL                |                |
| reference_id    | varchar(20)  | NO   |     |                     |                |
| location        | int(11)      | NO   |     | NULL                |                |
| category        | int(11)      | NO   |     | NULL                |                |
| team            | int(11)      | NO   |     | NULL                |                |
| technology      | int(11)      | NO   |     | NULL                |                |
| owner           | int(11)      | NO   |     | NULL                |                |
| manager         | int(11)      | NO   |     | NULL                |                |
| assessment      | longtext     | NO   |     | NULL                |                |
| notes           | longtext     | NO   |     | NULL                |                |
| submission_date | timestamp    | NO   |     | CURRENT_TIMESTAMP   |                |
| last_update     | timestamp    | NO   |     | 0000-00-00 00:00:00 |                |
| review_date     | timestamp    | NO   |     | 0000-00-00 00:00:00 |                |
| mitigation_id   | int(11)      | NO   |     | NULL                |                |
| mgmt_review     | int(11)      | NO   |     | NULL                |                |
| project_id      | int(11)      | NO   |     | 0                   |                |
| close_id        | int(11)      | NO   |     | NULL                |                |
| submitted_by    | int(11)      | NO   |     | 1                   |                |
| filename        | varchar(30)  | NO   |     | NULL                |                |
+-----------------+--------------+------+-----+---------------------+----------------+
21 rows in set (0.00 sec)
**mysql> INSERT INTO risks (`status`, `subject`, `reference_id`, `location`, `category`,
`team`, `technology`, `owner`, `manager`, `assessment`, `notes`,'filename')     VALUES 
('san', 'ss', 1, 1, 1, 1, 2, 1, 1, 'sment', 'notes','santu');**
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL server version for the right syntax to use near ''filename') 
VALUES ('san', 'ss', 1, 1, 1, 1, 2, 1, 1, 'sment', 'notes','sant' at line 1
浏览 1120 关注 0 得票数 31
  • 得票数为Stack Overflow原文数据
原文

6 个回答

回答于2014-02-25
得票数 3

不要将列filename引起来

mysql> INSERT INTO risks (status, subject, reference_id, location, category, team,    technology, owner, manager, assessment, notes,filename) 
VALUES ('san', 'ss', 1, 1, 1, 1, 2, 1, 1, 'sment', 'notes','santu');
修改于2014-02-25
  • 该回答已被编辑
  • 回答者: Stack Overflow用户
  • 回答时间: 2014-02-25 17:31
得票数 33

在MySQL中有两种不同类型的引号。需要使用 for column names and ' for strings. Since you have used ' for the filename column the query parser got confused. Either remove the quotation marks around all column names, or change 'filename' to 文件名`。那么它应该是有效的。

修改于2019-11-10
  • 该回答已被编辑
  • 回答者: Stack Overflow用户
  • 回答时间: 2017-05-19 23:39
得票数 -2

在终端执行转储查询,即可正常工作

mysql -u root -p  <Database_Name> > <path of the input file>
回答于2020-05-08
得票数 0

当您有一个来自mysql关键字的列名时,就会出现此错误,请尝试通过将所有列名放入 This中来运行查询

示例: insert into test ( sno order category samp pamp method )值( 1,1,'top',30,25,'Total');

在本例中,列名order是mysql中的一个关键字,因此我必须将其放在引号中。

回答于2020-11-28
得票数 -1

错误1064 (42000):您的SQL语法中有一个错误;请查看与您的MySQL服务器版本对应的手册,以了解要在'< <‘附近使用的正确语法。

一个非常简单的问题,你可以很容易地解决它,

请遵循我的步骤:将<更改为(和>;更改为);

只要使用:(

     );

在此处输入代码

` CREATE TABLE information (
-> id INT(11) NOT NULL AUTO_INCREMENT,
-> name VARCHAR(30) NOT NULL,
-> age INT(10) NOT NULL,