2016-08-09 8 views
1

PHPMyAdmin内にいくつかのテーブルを設定しようとしていますが、このステートメントを使用しました。なぜそれはエラーを作成し、受け入れられていないのですか?私は明らかな文法上の問題を見ることができないので、問題の内容がわからない。生成されたエラーは#1064と表示されます。この文でSQLエラーが発生するのはなぜですか?

CREATE TABLE 'users' (
    'id' INT NOT NULL AUTO_INCREMENT, 
    'username' VARCHAR(45) NOT NULL, 
    'password' VARCHAR(45) NOT NULL, 
    'email' VARCHAR(45) NOT NULL, 
    'dob' DATE NOT NULL, 
    'image_url' VARCHAR(45) NOT NULL, 
    'name' CHAR NOT NULL, 
    'email_private' TINYINT NOT NULL, 
    PRIMARY KEY ('id') 
); 


CREATE TABLE 'comments' (
    'id' INT NOT NULL AUTO_INCREMENT, 
    'comment' VARCHAR(140) NOT NULL, 
    'receiver_id' INT NOT NULL, 
    PRIMARY KEY ('id'), 
    CONSTRAINT 'receiver_id' 
    FOREIGN KEY ('receiver_id') 
    REFERENCES 'users' ('id') 
); 
+2

列と表名をバックスティック '\' 'でエスケープします。 – Blank

+0

#1064 - SQL構文に誤りがあります。あなたのMySQLサーバーのバージョンに対応するマニュアルをチェックして正しい構文を確認し、 "users"( 'ID' INT NOT NULL AUTO_INCREMENT、 'username' VARCHAR(45)NOT NUL ' – iamjawa

答えて

1

あなたがMySQL Reserved Words使用しているので、それらをエスケープする方法は、 `バッククォートを使用することです:あなたの代わりに`を使用してください使用したい場合は

CREATE TABLE 'users' (
    `id` INT NOT NULL AUTO_INCREMENT, 
    `username` VARCHAR(45) NOT NULL, 
    `password` VARCHAR(45) NOT NULL, 
    `email` VARCHAR(45) NOT NULL, 
    `dob` DATE NOT NULL, 
    `image_url` VARCHAR(45) NOT NULL, 
    `name` CHAR NOT NULL, 
    `email_private` TINYINT NOT NULL, 
    PRIMARY KEY (`id`) 
); 
0

あなたは、列名に'を使用しないでください'
'の内容は、列名ではなく、列の値に常に'が使用されていることを意味します。

関連する問題