この記事の例では、参考のためにMySQLトリガーを作成するための具体的なコードを共有しています。具体的な内容は次のとおりです。 例を見てみましょう: #テーブルを作成します。DROP TABLE IF EXISTS t_attendance; テーブル t_attendance を作成します ( job_no VARCHAR(30) デフォルト '' 操作時間 VARCHAR(20) デフォルト '' インデックスindex_operateTime(operateTime)、 INDEX index_jobNo(ジョブ番号) ) エンジン=INNODB デフォルト文字セット=utf8 #トリガーを作成する DELIMITER $ 挿入後にトリガー t_afterinsert_on_doorlog を作成する t_doorlogの各行 始める jobno VARCHAR(30)を宣言します。 time1 VARCHAR(20)を宣言します。 SET jobno = (SELECT job_num FROM tb_park_user_base WHERE card_num = new.cardNo); time1 = DATE_FORMAT(new.operateTime,'%Y%m%d%H%i%s') を設定します。 t_attendance (job_no, operatime) に挿入します。 価値観 (ジョブ番号、時間1); 終了$ 分析例: まず、トリガーに格納するテーブルt_attendanceを作成します。 DELIMITER $ は、次の文が "$" で終了することを MySQL に伝えることを意味します。この文がないと、次の文は失敗し、MySQL はどの文が終了するかを判断できません。 CREATE TRIGGER t_afterinsert_on_doorlog AFTER INSERT ON t_doorlog FOR EACH ROW トリガーを作成するための構文: AFTER には同じレベルのキーワードとして BEFORE があり、INSERT には同じレベルのキーワードとして DELETE と UPDATE があります。 DECLARE jobno VARCHAR(30)はトリガーSQLでローカル変数を宣言することを意味します。 SET jobno=.... は、ローカル変数に値を割り当てることを意味します。= の右側には、クエリ ステートメントまたは関数メソッドを指定できます。 補足トリガー: トリガーは、特定のテーブル内のデータが挿入、削除、または変更されたときに実行される特別なストアド プロシージャです。データベース自体の標準機能よりも高度で複雑なデータ制御機能を備えています。 データベース トリガーには次の機能があります。 1. セキュリティ。データベースの値に基づいて、ユーザーにデータベースを操作するための特定の権限を与えることができます。 # 時間に基づいてユーザー操作を制限できます。たとえば、仕事が終わった後や休日にはデータベースのデータを変更できません。 # データベース内のデータに基づいて、株価が一度に 10% 以上上昇しないようにするなど、ユーザー操作を制限できます。 2. 監査。データベース上のユーザー操作を追跡できます。 # ユーザーがデータベースを操作するために使用する監査ステートメント。 # ユーザーによるデータベースの更新を監査テーブルに書き込みます。 3. 複雑なデータ整合性ルールを実装する # 非標準のデータ整合性チェックと制約を実装します。トリガーはルールよりも複雑な制限を作成できます。ルールとは異なり、トリガーは列またはデータベース オブジェクトを参照できます。たとえば、トリガーにより、マージンを超える先物取引の試みが取り消される可能性があります。 # 変更可能なデフォルト値を提供します。 4. 複雑で非標準のデータベース関連の整合性ルールを実装します。トリガーは、データベース内の関連テーブルに対して連続更新を実行できます。たとえば、auths テーブルの author_code 列の削除トリガーにより、他のテーブル内の一致する行が削除される可能性があります。 # 変更または削除する場合、他のテーブル内の一致する行もカスケード変更または削除します。 # 変更または削除する場合、他のテーブル内の一致する行を NULL 値に設定します。 # 変更または削除する場合、他のテーブル内の一致する行をカスケードでデフォルト値に設定します。 # トリガーは、関連する整合性を破壊する変更を拒否またはロールバックし、データを更新しようとするトランザクションをキャンセルできます。このトリガーは、主キーと一致しない外部キーが挿入されたときにトリガーされます。たとえば、books.author_code 列に挿入トリガーを作成して、新しい値が auths.author_code 列の値と一致しない場合は挿入がロールバックされるようにすることができます。 5. テーブル内のデータをリアルタイムで同期的にコピーします。 6. データ値を自動的に計算し、データ値が特定の要件に達した場合は特定の処理を実行します。例えば、会社の口座の資金が50,000元未満の場合、警告データがすぐに財務担当者に送信されます。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: JavaScriptは組み込みオブジェクトのプロトタイプメソッド実装を追加します
>>: Ubuntu にグラフィック ドライバーが正常にインストールされたかどうかを確認する方法
1. vue uiでプロジェクトを作成する 2. 基本設定項目を選択する 3. プロジェクトを実行す...
目次1.関数内のこの方向1. 通常の機能2. コンストラクター3. オブジェクトメソッド4. イベン...
目次1. DOMとは何か2. 要素を選択する3. getElementById() 4. クエリセレ...
純粋な CSS を使用して波の効果を実現することは、常に非常に困難でした。 波形曲線を実現するにはベ...
目次01 よくある故障 1 02 よくある欠陥 2 03 よくある欠陥 3 04 よくある欠陥 4 ...
1. サブクエリMySQL 4.1以降はサブクエリをサポートしていますサブクエリ:別のクエリ内にネス...
01. コマンドの概要tr コマンドは、標準入力からの文字を置換、圧縮、削除できます。ある文字セット...
前回の記事では、https を使用したローカルノードサービスアクセスを実装しました。前回の記事の効果...
ドキュメント モードには次の 2 つの機能があります。 1. HTML文書を解析するためにどのHTM...
【序文】最近、ITOO の試験システムのストレステストを行いたいので、自分のコンピュータに Lin...
この記事の例では、ふるい抽選を実装するためのミニプログラムの具体的なコードを参考までに共有しています...
目次1. スワップパーティション SWAP 1.1 スワップファイルを作成する1.2 スワップパーテ...
ミニプログラムデータキャッシュ関連知識データ キャッシュ: データをキャッシュして、アプレットを終了...
目次導入公開コード(バックエンドインターフェース)例 1: 最もシンプル (純粋な HTML)コード...
「ウェブサイトを高級感のあるものにするにはどうすればいいでしょうか? それともデザイン重視にすればい...