错误1064(42000):您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以获得正确的语法

时间:2014-02-25 09:18:31

标签: mysql

当我尝试在表格中插入一行时,我收到以下错误:

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

9 个答案:

答案 0 :(得分:15)

MySQL中有两种不同类型的引号。你需要使用`作为列名和'对于字符串。既然你已经使用了'对于filename列,查询解析器感到困惑。删除所有列名称周围的引号,或更改' filename'到`filename`。然后它应该工作。

答案 1 :(得分:3)

不要引用列文件名

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');

答案 2 :(得分:1)

C:\xampp>mysql -u root -p mydatabase < C:\DB_Backups\stage-new.sql
Enter password:
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the ma
nual that corresponds to your MySQL server version for the right syntax to use n
ear 'stage-new.sql

----lot of space----

' at line 1

原因是当我使用以下命令转储数据库时:

mysqldump -h <host> -u <username> -p <database> > dumpfile.sql
dumpfile.sql

错误的dumpfile.sql在语法中添加了两次。

解决方案:我删除了添加到导出转储文件第一行的 dumpfile.sql 文本。

答案 3 :(得分:1)

这个错误是由于同一个表存在于2个数据库中,就像你有一个project1的数据库,并且你有table emp,你又有了另一个数据库,比如project2,当你尝试插入一些东西时,你有表emp在没有数据库名称的数据库内部,您将收到类似于

的错误

使用mysql查询时的解决方案,然后还提及数据库名称和表名。

OR

请勿使用KEY之类的保留关键字作为列名

答案 4 :(得分:0)

此解决方案适用于Windows:

  1. 在管理员模式下打开命令提示符。
  2. 转到路径:C:\ Program Files \ MySQL \ MySQL Server 5.6 \ bin
  3. 运行以下命令: mysqldump -h 127.0.01 -u root -proot db table1 table2> result.sql

答案 5 :(得分:0)

我遇到了同样的错误: 错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册以在第1行的',completed''附近使用正确的语法

这是我在终端上输入的输入: mysql>创建表待办事项(描述,已完成);

解决方案: 对于每种列类型,您必须指定它们将包含的内容类型。可以是文本,整数,变量,布尔值,其中有许多不同类型的数据。

mysql>创建表待办事项(描述文本,已完成布尔值);

查询确定,受影响的0行(0.02秒)

它现在成功通过了。

答案 6 :(得分:0)

将下面的代码保存为 command.sql

USE restaurant
TRUNCATE `orders`;
TRUNCATE `order_items`;

然后运行

mysql -u root <comands.sql> output.tab

答案 7 :(得分:-1)

错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以在'<< / p>附近使用正确的语法

您可以轻松解决的非常简单的问题,

请按照我的步骤进行操作:将<更改为(和>;更改为);

只需使用:(

     );

在此处输入代码

` CREATE TABLE information (
-> id INT(11) NOT NULL AUTO_INCREMENT,
-> name VARCHAR(30) NOT NULL,
-> age INT(10) NOT NULL,
-> salary INT(100) NOT NULL,
-> address VARCHAR(100) NOT NULL,
-> PRIMARY KEY(id)
-> );`

答案 8 :(得分:-4)

嘿朋友,

             Executing dump query in terminal then it will work

mysql -u root -p&gt;