ホームページ > データベース > mysql チュートリアル > MYSQL データベース トリガーについて話しましょう

MYSQL データベース トリガーについて話しましょう

WBOY
リリース: 2022-04-12 20:48:20
転載
1797 人が閲覧しました

この記事では、mysql に関する関連知識を提供します。主に、トリガーとは何か、データベースにトリガーを作成する方法、トリガーのデバイスが外部キーを置き換えられるかどうかなど、トリガーに関する関連問題を紹介します。 、見てみましょう。皆さんの参考になれば幸いです。

MYSQL データベース トリガーについて話しましょう

推奨される学習: mysql ビデオ チュートリアル

まずトリガーを理解してから、トリガーが可能かどうかを議論します。外部キーの代わりに完全に行う

#トリガーとは何ですか?

コンセプト: トリガーは、データの整合性を確保するために SQL サーバーによってプログラマやデータ アナリストに提供されるメソッドです。テーブル イベントに関連しています。特別なストアド プロシージャの実行は、プログラムによって呼び出されたり、手動で開始されるのではなく、テーブルの操作 (挿入、削除、更新) などのイベントによって実行が開始されます。トリガーは、データ整合性の制約とビジネス ルールを強制するためによく使用されます。トリガーは、DBA_TRIGGERS および USER_TRIGGERS データ ディクショナリにあります。 SQL3 トリガーは、データベースを変更するためにシステムによって自動的に実行できるステートメントです。

  • 平たく言えば、トリガーとはトリガーデバイスであり、デバイス内で操作が行われます。このデバイスにはトリガ条件があり、一定の条件が満たされるとデバイスがトリガされ、トリガデバイスは記憶された動作を実行します。

データベースにトリガーを作成する方法

トリガー インスタンスを作成する (キーワード: トリガー)

例 1: ユーザー テーブル (ユーザー ID、ユーザー名) を作成し、トリガーを作成します (ユーザー テーブルにデータが挿入されると、グローバルに一意の ID が自動的に生成されます)

最初にユーザー テーブルを作成します

create table user(
id int PRIMARY KEY,
name varchar(20)
);
ログイン後にコピー

MYSQL データベース トリガーについて話しましょう
トリガーを作成します

-- 建立触发器名为tt
create TRIGGER tt
-- 触发条件,向user表中插入数据时启动触发器
BEFORE insert on user
-- 检查表中每一行,对新插入的数据进行操作
for EACH ROW
-- 执行操作
BEGIN 
set new.id=UUID();
END
ログイン後にコピー

トリガーは単に作成されました (現在のデータベースにあるすべてのトリガーのトリガーを表示するコードを表示します)
MYSQL データベース トリガーについて話しましょう#効果
: テーブルに 3 つのユーザー名を挿入し、3 つの ID を自動的に生成します

insert user(name) VALUE('张三'),('李四'),('王五')
ログイン後にコピー

MYSQL データベース トリガーについて話しましょう例 2
: 注文テーブル DD (注文 ID、製品名、ユーザー ID) を作成し、トリガー tq1 (ユーザーが削除されると、ユーザーの注文も削除されます) テーブルの作成

create table DD(
ddid int PRIMARY KEY,
ddname VARCHAR(20),
userid VARCHAR(50)
)
ログイン後にコピー

MYSQL データベース トリガーについて話しましょうトリガーの作成

delimiter $
-- 建立触发器名为tq
create TRIGGER tq1
-- 触发条件,再dd表删除数据之后启动触发器
AFTER DELETE on user
-- 检查表中每一行,对新插入的数据进行操作
for EACH ROW
-- 执行操作
BEGIN  
DELETE FROM dd WHERE old.id=userid;
END $ 
delimiter ;
ログイン後にコピー

MYSQL データベース トリガーについて話しましょう2 つのデータをテーブルに追加します

MYSQL データベース トリガーについて話しましょう

効果

: user テーブルのユーザーと dd テーブルのレコードを削除します削除も続きますDelete Zhang San

delete from user WHERE name='张三'
ログイン後にコピー

MYSQL データベース トリガーについて話しましょう
##トリガーで外部キーを完全に置き換えることができますMYSQL データベース トリガーについて話しましょう

上記の例 2 が外部キーを使用して同じ効果を達成できる場合、トリガーは外部キーで実行できるすべての操作を実行でき、外部キーが実行できないトリガーでも実行できることを意味しますか?

    外部キーと比較して、トリガーは柔軟性が高く、より多くの機能を実行でき、ある程度まで外部キーを置き換えたり、外部キーの機能を実現したりできます。
  • トリガーを使用して参照整合性を強制することもでき、複数のテーブルで行が追加、更新、または削除されたときに、それらのテーブル間に定義された関係が保持されます。ただし、参照整合性を強制する最善の方法は、関連テーブルに主キー制約と外部キー制約を定義することです。データベース ダイアグラムを使用する場合は、テーブル間のリレーションシップを作成して、外部キー制約を自動的に作成できます。
  • 概要:
トリガーは特定の時点で外部キーを置き換えることができますが、すべての状況で置き換えられるわけではありません。外部キーと外部トリガーも一緒に使用できます

推奨学習:mysql ビデオ チュートリアル

以上がMYSQL データベース トリガーについて話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート