ホームページ > データベース > mysql チュートリアル > なぜ数値を MySQL ENUM カラムに保存すべきではないのでしょうか?

なぜ数値を MySQL ENUM カラムに保存すべきではないのでしょうか?

WBOY
リリース: 2023-09-04 12:29:09
転載
1273 人が閲覧しました

为什么我们不应该将数字存储到 MySQL ENUM 列中?

MySQL は、ENUM 値を整数キー (インデックス番号) として内部的に保存し、ENUM メンバーを参照します。整数値を ENUM カラムに格納しない主な理由は、明らかに MySQL が値ではなくインデックスを参照することになり、その逆も同様であることです。

次の例で明確になります:

mysql> Create table enmtest(Val ENUM('0','1','2'));
Query OK, 0 rows affected (0.18 sec)

mysql> Insert into enmtest values('1'),(1);
Query OK, 2 rows affected (0.19 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> Select * from enmtest;
+-----+
| Val |
+-----+
| 1   |
| 0   |
+-----+
2 rows in set (0.00 sec)
ログイン後にコピー

ここでは、文字列として「1」を挿入し、誤って数字の 1 も挿入しました。引用符なし。 MySQL は紛らわしいことに、メンバー リストの最初の項目 (つまり 0) への内部参照であるインデックス値として数値入力を使用します。

以上がなぜ数値を MySQL ENUM カラムに保存すべきではないのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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