2011-07-21 19 views
0

こんにちは、私はphpmyadmin 3.3.9を使用しています。あなたはこれらのSQLの問題に私を助けることができますか?

CREATE TABLE metars(
metar varchar(255) NOT NULL default '', 
timestamp timestamp(14) NOT NULL , 
station varchar(4) NOT NULL, 
PRIMARY KEY (station) , 
UNIQUE KEY station(station) 
) ENGINE = MYISAM 

と相続エラー:私は

は、相続人のコードがどのように見える..私は全く問題が何であるかを知らないするSQL prblemを持って

#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 '(14) NOT NULL , station varchar(4) NOT NULL default '', PRIMARY KE' at line 3 
+0

良いことがあります。 –

+0

エラーメッセージによれば、 'station'行の最後に' default ''もあります。あなたはそれがあなたの正確な入力であると確信していますか? – bdares

+0

主キーとして 'station'があるので、別の' UNIQUE'制約は必要ありません。 –

答えて

4

でそれを試してみてくださいtimestamp timestamp NOT NULL ,
タイムスタンプのための長さ/フォーマットオプションはありません(つまり:mysqlの5.1のために、ypercubeのコメントを見ていない)

はを参照してください

data_type: 
    BIT[(length)] 
    | TINYINT[(length)] [UNSIGNED] [ZEROFILL] 
    | SMALLINT[(length)] [UNSIGNED] [ZEROFILL] 
    | MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL] 
    | INT[(length)] [UNSIGNED] [ZEROFILL] 
    | INTEGER[(length)] [UNSIGNED] [ZEROFILL] 
    | BIGINT[(length)] [UNSIGNED] [ZEROFILL] 
    | REAL[(length,decimals)] [UNSIGNED] [ZEROFILL] 
    | DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL] 
    | FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL] 
    | DECIMAL[(length[,decimals])] [UNSIGNED] [ZEROFILL] 
    | NUMERIC[(length[,decimals])] [UNSIGNED] [ZEROFILL] 
    | DATE 
    | TIME 
    | TIMESTAMP 
    | DATETIME 
    | YEAR 
    | CHAR[(length)] 
[...]

しかし、キーワードやタイプ名を識別子として使用しないでください。

+0

実際には、TIMESTAMPの長さ/書式のオプションがありました。 MySQL 5.0.51はテーブルを作成しますが、OPコードが実行されるとこの警告が表示されます。** ''TIMESTAMP(14)'は推奨されません。代わりに 'TIMESTAMP'を使用してください。** –

+0

@ypercube:ありがとう、情報が追加されました... – VolkerK

3

'timestamp'はMySQLのキーワードです。したがって、カラム名 'timestamp'をotherに変更するか、grave( `)でラップします。また、タイムスタンプ型の列の長さを設定する必要はありません。

また、PRIMARY KEYは一意性を意味します。したがって、ユニークキーステーション(ステーション)はここでは必要ありません。

CREATE TABLE metars(
metar varchar(255) NOT NULL default '', 
`timestamp` timestamp, 
station varchar(4) NOT NULL, 
PRIMARY KEY (station) 
) ENGINE = MYISAM 
0
CREATE TABLE metars(
`metar` varchar(255) NOT NULL default '', 
`timestamp` timestamp(14) NOT NULL , 
`station` varchar(4) NOT NULL, 
PRIMARY KEY (`station`) , 
UNIQUE KEY station(`station`) 
) ENGINE = MYISAM 

これはこれは、フィールド名の `timestamp`を使用するのはよくないです

関連する問題