実験9 SQLデータベース言語 - トリガーの基本的な操作
あなたは、テーブルにINSERT、UPDATEトリガTR_SC_IN_SNO SCを作成すると、その後の記録に選択科目の選択テーブルを挿入または変更を許可されていない場合、学生は、テーブル内の学生の数であるかどうかをチェックするためにレコードを挿入または変更する選択科目のカリキュラムの学生数、学生数を尋ねました学生番号。
MySQLのトリガ機能を実現するので、この書き込みを2つのトリガーで、同じ時間トリガアクションで複数のイベントをサポートしていないため。
レコードが挿入されている場合は選択科目の学校の生徒数はエラーではありません。
delimiter //
create trigger TR_SC_IN_SNO after insert on sc
for each row
begin
if (new.sno not in (select sno from student)) #如果插入的元组学号不在student,报错
then
SIGNAL SQLSTATE'45000'SET MESSAGE_TEXT = 'the sno is not in stdent';;
end if;
END//
数が学校の学生、エラーでない場合は、カリキュラムの学生の数を変更する場合:
delimiter //
create trigger TR_SC_UP_SNO after update on sc
for each row
begin
if (new.sno not in (select sno from student)) #如果更新元组时修改的学号不在student,报错
then
SIGNAL SQLSTATE'45000' SET MESSAGE_TEXT = 'the sno is not in stdent';
end if;
END//
あなたは結果がの確立をトリガ表示することができます。