この記事では、例を使用して MySQL トリガーの構文とアプリケーションを説明します。ご参考までに、詳細は以下の通りです。 例: テーブルの追加、削除、変更操作を記録するトリガーを作成する // ユーザー テーブルを作成します。 `user` が存在する場合はテーブルを削除します。 テーブル `user` を作成します ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `account` varchar(255) デフォルト NULL, `name` varchar(255) デフォルト NULL, `address` varchar(255) デフォルト NULL, 主キー (`id`) )ENGINE=InnoDB デフォルト文字セット=utf8; // ユーザー テーブル操作の履歴テーブルを作成します。DROP TABLE IF EXISTS `user_history`; テーブル `user_history` を作成します ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `user_id` bigint(20) NULLではない、 `operatetype` varchar(200) NOT NULL, `operatetime` 日時 NOT NULL、 主キー (`id`) )ENGINE=InnoDB デフォルト文字セット=utf8; DELIMITER: 入力ターミネータを変更します。デフォルトでは、入力ターミネータはセミコロン; です。ここでは、2 つのセミコロン;; に変更します。この目的は、デフォルトのセミコロン ターミネータに遭遇したときに自動的に実行するのではなく、セミコロンを含む複数のステートメントをカプセル化し、すべて入力された後にまとめて実行することです。
入れる: `tri_insert_user` が存在する場合はトリガーを削除します。 区切り文字 ;; 行ごとに `user` の INSERT 後に `tri_insert_user` トリガーを作成します user_history(user_id, operatype, operatime) に INSERT INTO VALUES (new.id, 'ユーザーを追加', now()); 終わり ;; 区切り文字 ; アップデート: `tri_update_user` が存在する場合はトリガーを削除します。 区切り文字 ;; 各行の「user」の更新後に「tri_update_user」トリガーを作成します。 INSERT INTO user_history(user_id,operatetype,operatetime) VALUES (new.id, 'ユーザーを更新する', now()); 終わり ;; 区切り文字 ; 消去: `tri_delete_user` が存在する場合はトリガーを削除します。 区切り文字 ;; 各行の「user」の削除後に「tri_delete_user」トリガーを作成します。 INSERT INTO user_history(user_id, operatype, operatime) VALUES (old.id, 'ユーザーを削除', now()); 終わり ;; 区切り文字 ; MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL クエリ スキル」、「MySQL トランザクション操作スキル」、「MySQL ストアド プロシージャ スキル」、「MySQL データベース ロック関連スキルの概要」、および「MySQL 共通関数の概要」 この記事が皆様のMySQLデータベース設計に役立つことを願っています。 以下もご興味があるかもしれません:
|
<<: Alibaba Cloud Server にセキュリティ グループ ルールを追加する詳細な説明 (グラフィック チュートリアル)
Windows システム向け MySQL インストール チュートリアルダウンロード1. https:...
Ubuntu コマンドライン ウィンドウで次の操作を実行します。 1. 仮想環境をインストールする...
この記事では、Mysql の自己結合クエリについて説明します。ご参考までに、詳細は以下の通りです。自...
この記事では、Centos7.3でのmysql5.7.18のインストールと初期パスワードの変更につい...
結果:実装コードhtml <link href='https://fonts.goog...
コンセプト紹介: MySQL の redo ログにはトランザクションの動作が記録されることはご存じの...
目次浅いコピーディープコピー補充する要約するコピー(クローン、複製などとも呼ばれる)ですが、ディープ...
さっそく、コードを見てみましょう(初心者:特に言うことはありません) <!DOCTYPE ht...
1. コンポーネント First.js にはサブコンポーネントがあります。 './Admin...
ほとんどのブラウザはデフォルトで入力値をキャッシュし、ctl+F5 を使用して強制的に更新することに...
stat 関数と stat コマンドLinux ファイル内の [inode = インデックス ノード...
複雑なテーブル構造では、一部のセルが水平方向に複数のセルにまたがるため、行間属性 ROWSPAN を...
出典: http://www.ruoyi.vip/ 'vue' から Vue をイン...
[LeetCode] 176. 2番目に高い給与従業員テーブルから 2 番目に高い給与を取得する ...
Hyper-V を展開するためのハードウェア要件は次のとおりです。 64 ビット プロセッサ、具体...