phpMyAdmin中的SQL保留字语法错误

时间:2012-09-28 00:00:29

标签: mysql sql phpmyadmin

尝试在phpMyAdmin中执行以下代码时出现以下错误。我正在使用WAMP Server与MySQL版本5.5.8 ::

错误是:

#1064 - 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 'NUMERIC(6)   not null, payee  VARCHAR2(20)   not null, amount     DECIMAL(6,2)   no' at line 3

SQL是:

CREATE TABLE checks 
    (
        check       NUMERIC(6)  not null,
        payee       VARCHAR2(20)    not null,
        amount      DECIMAL(6,2)    not null,
        remarks     VARCHAR2(20)    not null
    )

修改

我也在尝试执行此操作,但它也会出错:

CREATE TABLE deposits
    (
        deposit     NUMBER(8),
        whopaid     VARCHAR(25),
        amount      DECIMAL(6,2),
        remarks     VARCHAR(20)
    )

3 个答案:

答案 0 :(得分:4)

您需要使用反引号转义check,因为它是reserved word。在MySQL中,没有varchar2数据类型,只有varchar

CREATE TABLE checks 
(
    `check`     NUMERIC(6)    not null,
    payee       VARCHAR(20)   not null,
    amount      DECIMAL(6,2)  not null,
    remarks     VARCHAR(20)   not null
)

同样在第二个创建语句中将NUMBER替换为NUMERIC

CREATE TABLE deposits
(
    deposit     NUMERIC(8),
    whopaid     VARCHAR(25),
    amount      DECIMAL(6,2),
    remarks     VARCHAR(20)
)

SQLFiddle example

请参阅MySQL String data typesMySQL numeric data types

答案 1 :(得分:0)

check是一项保留作品,这就是您遇到此错误的原因

你需要在它周围加上引号

答案 2 :(得分:0)

CHECK是mysql中的保留关键字。如果您选择其他名称,它应该可以正常工作。

http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html