0

尝试在 phpMyAdmin 中执行以下代码时出现以下错误。我正在使用带有 MySQL 5.5.8 版的 WAMP 服务器 ::

错误是:

#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)
    )
4

3 回答 3

4

您需要check使用反引号转义,因为它是保留字。在 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 示例

请参阅MySQL 字符串数据类型MySQL 数字数据类型

于 2012-09-28T00:03:25.443 回答
0

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

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

于 2012-09-28T00:04:53.917 回答
0

check是保留的作品,这就是您出现此错误的原因

你需要在它周围加上引号

于 2012-09-28T00:04:06.323 回答