ホームページ > データベース > mysql チュートリアル > 「order」という名前の MySQL テーブルを作成すると SQL 構文エラーが発生するのはなぜですか?

「order」という名前の MySQL テーブルを作成すると SQL 構文エラーが発生するのはなぜですか?

Susan Sarandon
リリース: 2025-01-09 11:22:41
オリジナル
200 人が閲覧しました

Why Does Creating a MySQL Table Named

「order」という名前の MySQL テーブルの作成中に SQL 構文エラーが発生しました

PHP スクリプトを使用して「order」という名前の MySQL テーブルを作成すると、「テーブルの作成エラー: SQL 構文に 'order( order_id INT UNSIGNED NOT NULL AUTO_INCREMENT, user_id ', p 付近にエラーがあります)」というエラーが発生する場合があります。 . 1 row [duplicate]"。この問題は、SQL ステートメントの構文エラーが原因である可能性があります。

具体的には、予約語「order」が使用されており、正しくエスケープされていないため、構文エラーが発生します。 SQL では、予約語をテーブル名や列名と区別するためにバッククォート (`) を使用してエスケープする必要があります。

このエラーを回避するには、次のように「order」予約語をエスケープします。

<code class="language-sql">CREATE TABLE `order` (
    order_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    user_id INT UNSIGNED NOT NULL,
    transaction_id VARCHAR(19) NOT NULL,
    payment_status VARCHAR(15) NOT NULL,
    payment_amount DECIMAL(6,2) UNSIGNED NOT NULL,
    payment_date_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (order_id),
    FOREIGN KEY (user_id) REFERENCES user (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>
ログイン後にコピー

これを行うと、MySQL は「order」を有効なテーブル名として認識し、テーブルが正常に作成されます。

あるいは、予約語の使用を避け、テーブルに別の名前を使用することもできます。これは、将来の潜在的な構文エラーを防ぐのに役立ちます。

以上が「order」という名前の MySQL テーブルを作成すると SQL 構文エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート