実験9 SQLデータベース言語 - トリガーの基本的な操作

実験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//

あなたは結果がの確立をトリガ表示することができます。
ここに画像を挿入説明

公開された68元の記事 ウォン称賛36 ビュー10000 +

おすすめ

転載: blog.csdn.net/dingdingdodo/article/details/103016666