Có, trong MySQL, trình kích hoạt là cách duy nhất để làm điều này. MySQL không hỗ trợ các ràng buộc.
Trình kích hoạt của bạn không chính xác. Đầu tiên, bạn có update on date
, nhưng đây phải là update on <table name>
. Thứ hai, bạn đang kiểm tra giá trị ngày được sử dụng cho cập nhật . Có lẽ ý bạn là:
create trigger date_check_update
before update on <the table name goes here>
for each row
begin
if (old.date IS NOT NULL) then
SIGNAL 'date already set'
end if ;
end;
Một insert
kích hoạt trong điều kiện này không có ý nghĩa.