MySQL の列名として予約語をエスケープする CREATE TABLE
MySQL でテーブルを作成するときは、言語の予約語に従うことが重要です。ただし、クラス フィールド名がこれらのキーワードと一致する場合 (例の「key」フィールドなど) に問題が発生します。
この問題を回避するには、二重引用符またはバッククォーテーションを使用して予約語をエスケープし、予約語が確実に保護されるようにします。 MySQL キーワードではなく列名として認識されます。
二重引用符の使用 (ANSI SQL モード)有効)
MySQL 環境で ANSI SQL モードが有効になっている場合は、予約語を二重引用符で囲むことができます:
CREATE TABLE IF NOT EXISTS misc_info ( id INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL, "key" TEXT UNIQUE NOT NULL, value TEXT NOT NULL ) ENGINE=INNODB;
バッククォートの使用 (独自のエスケープ) )
ANSI SQL モードが有効になっていない場合、または希望する場合独自のアプローチであるバッククォートを使用して予約語をエスケープできます。
CREATE TABLE IF NOT EXISTS misc_info ( id INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL, `key` TEXT UNIQUE NOT NULL, value TEXT NOT NULL ) ENGINE=INNODB;
これらの方法のいずれかを採用することで、MySQL の予約語と一致する列名を持つテーブルを正常に作成できます。
以上がMySQL テーブルの列を作成するときに予約語をエスケープするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。