0

これが失敗する理由がわかりません:o

CREATE TABLE "Permission" (
"id" INTEGER NOT NULL,
"name" VARCHAR(255) NOT NULL,
PRIMARY KEY ("id") 
);

メッセージ

Error : 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 '"Permission" (
"id" INT NOT NULL,
"name" VARCHAR(255) NOT NULL,
PRIMARY KEY ("id' at line 1

アイデアをありがとう!

4

3 に答える 3

2

間違った引用文字を使用しています。テーブル名と列には、" マークではなく ` マークを使用する必要があります。

 CREATE TABLE `Permission` (
`id` INTEGER NOT NULL, 
`name` VARCHAR(255) NOT NULL, 
 PRIMARY KEY (`id`)  
 );
于 2012-07-11T20:29:00.337 に答える
1

クイックシフチンの回答が示すように、MySQL は通常、バックティック文字を使用してオブジェクト参照を囲みます。

しかし、二重引用符を使用することは実際には「間違っている」わけではありません。MySQL のデフォルトの動作では、二重引用符をそのように使用することは許可されていません。

ANSI_QUOTESセッションで sql モードを有効にすることにより、MySQL でオブジェクト参照の前後に二重引用符を使用できるようにすることができます。テーブルを定義するためだけに一時的にこれを行い、その後元に戻すことをお勧めします。

SHOW VARIABLES LIKE 'sql_mode'

SET sql_mode = 'ANSI_QUOTES'

sql_mode 変数を設定する前に、テーブルを作成した後で元に戻せるように、現在の設定を書き留めておきます。

SET sql_mode = '' 

この変数をデータベース レベルで設定することもできますが、それが行われたのは初めてです。二重引用符を使用する SQL テーブル定義をインポートするために、セッション レベルでデフォルトを (一時的に) オーバーライドしただけです。

于 2012-07-11T20:41:44.740 に答える
1

quickshiftinの答えは良いです。
また、次のように変更する必要があります。

`id` INTEGER NOT NULL, 

に:

`id` INT NOT NULL, 
于 2012-07-11T20:32:37.793 に答える