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にはデータ型はなく、ただ。varchar2varchar

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

また、2番目のcreateステートメントでに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は予約済みの作業であるため、このエラーが発生します

あなたはそれの周りに引用符を置く必要があります

于 2012-09-28T00:04:06.323 に答える
0

CHECKはmysqlで予約されているキーワードです。別の名前を選択した場合は、正常に機能するはずです。

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

于 2012-09-28T00:04:53.917 に答える