Cari fail my.cnf (my.ini for windows system) dalam direktori pemasangan mysql
Menambah STRICT_TRANS_TABLES ke sql_mode bermakna menghidupkan mod ketat Jika ia tidak ditambah, ini bermakna mod tidak ketat selepas pengubahsuaian
Sebagai contoh, ini bermakna mod ketat dihidupkan. :
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
Tidak menyokong sisipan nilai. ke dalam medan bukan nol
Tidak menyokong memasukkan "nilai" ke dalam medan yang meningkat sendiri
Tidak menyokong nilai lalai untuk medan teks
Buat jadual data untuk memudahkan ujian
CREATE TABLE `mytable` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `content` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Laksanakan dalam mod tidak ketat
mysql> insert into mytable(content) values('programmer');
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> select * from mytable;
+----+------+------------+
| id | name | content |
+----+------+------------+
| 1 | | programmer |
+----+------+------------+
1 row in set (0.00 sec)
mysql> insert into mytable(content) values('programmer');
ERROR 1364 (HY000): Field 'name' doesn't have a default value
2. Masukkan " ujian nilai untuk medan meningkat sendiri
Sisipkan "nilai untuk medan idDilaksanakan dalam mod tidak ketat
mysql> insert into mytable(id,name,content) value('','fdipzone','programmer');
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> select * from mytable;
+----+----------+------------+
| id | name | content |
+----+----------+------------+
| 1 | fdipzone | programmer |
+----+----------+------------+
1 row in set (0.00 sec)
mysql> insert into mytable(id,name,content) value('','fdipzone','programmer');
ERROR 1366 (HY000): Incorrect integer value: '' for column 'id' at row 1
mysql> insert into mytable(id,name,content) value(null,'fdipzone','programmer'); Query OK, 1 row affected (0.00 sec) mysql> select * from mytable; +----+----------+------------+ | id | name | content | +----+----------+------------+ | 1 | fdipzone | programmer | +----+----------+------------+ 1 row in set (0.00 sec)
Jika id medan adalah batal, pelaksanaan boleh berjaya
3. Ujian nilai lalai medan teks
Buat satu jadual data mytable, dengan teks menetapkan nilai lalai="Dilaksanakan dalam mod tidak ketat
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;
+------------------------------+
| Tables_in_test_version |
+------------------------------+
| mytable |
+------------------------------+
Atas ialah kandungan terperinci Cara menggunakan mod ketat mysql Mod Ketat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!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;
ERROR 1101 (42000): BLOB/TEXT column 'content' can't have a default value