Gunakan sebelum INSERT pencetus pada jadual untuk mengelakkan nilai sifar dalam medan MySQL. Mari kita buat jadual dahulu -
mysql> create table DemoTable(Value int); Query OK, 0 rows affected (0.85 sec)
Mari kita buat pencetus untuk menghalang nilai sifar daripada muncul dalam medan MySQL -
mysql> DELIMITER // mysql> create trigger preventing_to_insert_zero_value before insert on DemoTable for each row begin if(new.Value = 0) then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'You can not provide 0 value'; END if; end // Query OK, 0 rows affected (0.34 sec) mysql> DELIMITER ;
Mari kita masukkan nilai 0 dalam jadual dan semak sama ada nilai itu akan dimasukkan. Ia tidak akan membenarkan -
mysql> insert into DemoTable values(0); ERROR 1644 (45000): You cannot provide 0 value
Jadi, dalam jadual di atas, 0 nilai tidak boleh dimasukkan kerana pencetus. Walau bagaimanapun, anda boleh memasukkan beberapa nilai lain.
Sekarang mari kita masukkan beberapa rekod dalam jadual menggunakan arahan sisip -
mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(-1000); Query OK, 1 row affected (0.41 sec)
Gunakan pernyataan pilih untuk memaparkan semua rekod dalam jadual -
mysql> select *from DemoTable;
Ini akan menghasilkan output berikut -
+-------+ | Value | +-------+ | 10 | | -1000 | +-------+ 2 rows in set (0.00 sec)
Atas ialah kandungan terperinci Cegah nilai sifar dalam medan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!