हां, MySQL ट्रिगर्स में ऐसा करने का एकमात्र तरीका है। MySQL बाधाओं का समर्थन नहीं करता है।
आपका ट्रिगर बिल्कुल सही नहीं है। सबसे पहले, आपके पास update on date
. है , लेकिन यह update on <table name>
. पर अपडेट होना चाहिए . दूसरा, आप अपडेट . के लिए उपयोग किए गए दिनांक मान की जांच कर रहे हैं . शायद आपका मतलब:
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;
एक insert
इस शर्त पर ट्रिगर का कोई मतलब नहीं है।