sql_mode で my.cnf
(Windows システムの場合は my.ini) ファイルを見つけ、mysql に STRICT_TRANS_TABLES を追加します。インストールこれが追加されていない場合は、変更後に mysql を再起動するだけです。これは、sql_mode=NO_ENGINE_SUBSTITUTION,
STRICT_TRANS_TABLES
を意味します。 2. Strict Mode 関数の説明
自己増加フィールドへの「値」の挿入をサポートしません
デフォルト値のテキストフィールドをサポートします
3 .例:
<span style="color: rgb(0, 0, 0);">CREATE TABLE `mytable` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `content` text NOT NULL, PRIMARY KEY (`id`)<br/>) ENGINE=InnoDB DEFAULT CHARSET=utf8;</span>
1.not null field insert null value test
非厳密モード 厳密モードで実行されました
<span style="color: rgb(0, 0, 0);">mysql> insert into mytable(content) values('programmer');<br/>Query OK, 1 row affected, 1 warning (0.00 sec)mysql> select * from mytable;<br/>+----+------+------------+| id | name | content |<br/>+----+------+------------+| 1 | | programmer |<br/>+----+------+------------+1 row in set (0.00 sec)</span>
2. 自動インクリメントフィールドに「値テスト」を挿入します
ID フィールドに「値を挿入します 」 非厳格モードで実行されます
<span style="color: rgb(0, 0, 0);">mysql> insert into mytable(content) values('programmer');ERROR 1364 (HY000): Field 'name' doesn't have a default value</span>
正常に実行されました
厳密モードで実行されました<span style="color: rgb(0, 0, 0);">mysql> insert into mytable(id,name,content) value('','fdipzone','programmer');<br/>Query OK, 1 row affected, 1 warning (0.00 sec)mysql> select * from mytable;<br/>+----+----------+------------+| id | name | content |<br/>+----+----------+------------+| 1 | fdipzone | programmer |<br/>+----+----------+------------+1 row in set (0.00 sec)</span>
<span style="color: rgb(0, 0, 0);">mysql> insert into mytable(id,name,content) value('','fdipzone','programmer');<br/>ERROR 1366 (HY000): Incorrect integer value: '' for column 'id' at row 1</span>
3. テキストフィールドのデフォルト値テストテキストにデフォルト値default=”を設定するデータテーブルmytableを作成します
非厳密モード
<span style="color: rgb(0, 0, 0);">mysql> insert into mytable(id,name,content) value(null,'fdipzone','programmer');<br/>Query OK, 1 row affected (0.00 sec)mysql> select * from mytable;<br/>+----+----------+------------+| id | name | content |<br/>+----+----------+------------+| 1 | fdipzone | programmer |<br/>+----+----------+------------+1 row in set (0.00 sec)</span>
実行成功
厳密モードで実行されました 要約すると、mysql strict モードを使用すると、データをより安全かつ厳密にすることができますが、欠点は、空のデータ ストレージの互換性が低下することです。コードの品質とデータの厳密性を向上させるために、開発環境では厳密モードを使用することをお勧めします。 この記事は mysql strict モード Strict Mode について説明していますか? 関連する推奨事項の詳細については、php 中国語 Web サイトに注意してください。 関連する推奨事項: 以上がmysql strictモードの説明 Strictモードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。<span style="color: rgb(0, 0, 0);">mysql> CREATE TABLE `mytable` ( -> `id` int(11) NOT NULL AUTO_INCREMENT, -> `name` varchar(20) NOT NULL, -> `content` text NOT NULL default '', -> PRIMARY KEY (`id`) -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;Query OK, 0 rows affected, 1 warning (0.03 sec)mysql> show tables;<br/>+------------------------------+| Tables_in_test_version |<br/>+------------------------------+| mytable |<br/>+------------------------------+</span>