Sử dụng trình kích hoạt TRƯỚC KHI CHÈN trên bảng để ngăn việc có giá trị 0 trong trường MySQL. Đầu tiên chúng ta hãy tạo một bảng -
mysql> create table DemoTable(Value int); Query OK, 0 rows affected (0.85 sec)
Hãy để chúng tôi tạo một trình kích hoạt để ngăn việc có giá trị 0 trong trường 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 ;
Hãy để chúng tôi chèn giá trị 0 vào bảng và kiểm tra giá trị đó có được chèn hay không. Nó sẽ không cho phép -
mysql> insert into DemoTable values(0); ERROR 1644 (45000): You cannot provide 0 value
Vì vậy, trong bảng trên, bạn không thể chèn giá trị 0 vì trigger. Tuy nhiên, bạn có thể chèn một số giá trị khác.
Bây giờ chúng ta hãy chèn một số bản ghi vào bảng bằng cách sử dụng lệnh insert -
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)
Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -
mysql> select *from DemoTable;
Điều này sẽ tạo ra kết quả sau -
+-------+ | Value | +-------+ | 10 | | -1000 | +-------+ 2 rows in set (0.00 sec)