2016-05-10 26 views
0

申し訳ありません。私はMySQLに作成しているSpigotプラグインを結びつけようとしています。テーブルを作成していたコードを編集するまで、正常に実行しました。私は、MySQLのスタックトレースは非常にあまりにもあまりにもあまりにも曖昧なので、私はここで間違って何をしているか分かりません。 コード:このMySQL構文で何が問題になっていますか?

CREATE TABLE IF NOT EXISTS WebsiteLink_keys(id INT NOT NULL KEY AUTO_INCREMENT, key VARCHAR(36), trimmedUUID VARCHAR(36), playerUUID VARCHAR(36), date TIMESTAMP, status TEXT);

+2

'key'と' date'が予約されている言葉です。私はそれらをカラム名として使用しませんが、もしあなたがそうするなら、あなたはbackticks(少なくとも 'key'で)からそれらをエスケープする必要があります... – sgeddes

+1

@Sgeddes日付は予約語ではありません – Strawberry

+0

@Strawberry - それらは両方のキーワードであり、どちらかを列名として使用することはお勧めしません。 – sgeddes

答えて

2

keyは、MySQLの予約語です。あなたは絶対に列名としてそれを使用する必要がある場合は、バッククォートを使用して、それをエスケープすることができます

CREATE TABLE IF NOT EXISTS WebsiteLink_keys (
    id INT NOT NULL KEY AUTO_INCREMENT, 
    `key` VARCHAR(36), -- Here! 
    trimmedUUID VARCHAR(36), 
    playerUUID VARCHAR(36), 
    date TIMESTAMP, 
    status TEXT 
) 

それとも、いっそ、このようlink_keyとして、予約語ではない名前を使用します。

CREATE TABLE IF NOT EXISTS WebsiteLink_keys (
    id INT NOT NULL KEY AUTO_INCREMENT, 
    link_key VARCHAR(36), -- Here! 
    trimmedUUID VARCHAR(36), 
    playerUUID VARCHAR(36), 
    date TIMESTAMP, 
    status TEXT 
) 
1
CREATE TABLE IF NOT EXISTS WebsiteLink_keys(
    id INT NOT NULL AUTO_INCREMENT, 
    `key` VARCHAR(36), 
    trimmedUUID VARCHAR(36), 
    playerUUID VARCHAR(36), 
    `date` TIMESTAMP, 
    status TEXT, 
    PRIMARY KEY (id) 
); 

PRIMARY KEY(ID)が終了

関連する問題