NOT NULL として宣言された MySQL カラムに空の文字列を挿入すると、結果セット内の空の文字列の表現はデータ型によって異なります。空の文字列を挿入するときに、整数として表される値を INT 0 として MySQL に提供することがわかっています。
カラムのデータ型が INTEGER の場合、MySQL は以下に示すように結果セットに 0 を表示します。空の文字列は整数の 0 にマップされています。
mysql> create table test(id int NOT NULL, Name Varchar(10)); Query OK, 0 rows affected (0.19 sec) mysql> Insert into test(id, name) values('1', 'Gaurav'),('0','Rahul'),('','Aarav'); Query OK, 3 rows affected, 1 warning (0.08 sec) Records: 3 Duplicates: 0 Warnings: 1 mysql> Select * from test; +----+--------+ | id | Name | +----+--------+ | 1 | Gaurav | | 0 | Rahul | | 0 | Aarav | +----+--------+ 3 rows in set (0.00 sec)
ただし、カラムに他のデータ型 (VARCHAR など) がある場合、MySQL は結果セットに空の文字列を表示します。
mysql> create table test123(id Varchar(10) NOT NULL, Name Varchar(10)); Query OK, 0 rows affected (0.19 sec) mysql> Insert into test123(id, name) values('1', 'Gaurav'),('0','Rahul'),('','Aarav'); Query OK, 3 rows affected, 1 warning (0.08 sec) Records: 3 Duplicates: 0 Warnings: 1 mysql> Select * from test123; +----+--------+ | id | Name | +----+--------+ | 1 | Gaurav | | 0 | Rahul | | | Aarav | +----+--------+ 3 rows in set (0.00 sec)
上記の例から、NOT NULL として宣言された MySQL カラムに空の文字列を挿入するときに、データ型がどのような役割を果たすのかがわかります。
以上がNOT NULL と宣言された MySQL カラムに空の文字列を挿入する場合、データ型はどのような役割を果たしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。