MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでDELETE操作が実行された後にトリガーを起動する


AFTER DELETEを使用して、DELETE操作の実行後にトリガーを起動します。以下は構文です-

DELIMITER //
   CREATE TRIGGER yourTriggerName
      AFTER DELETE
      ON yourTableName FOR EACH ROW
      BEGIN
      yourStatement1,
      .
      .
      N
   END;
   //

まずテーブルを作成しましょう-

mysql> create table DemoTable(Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,FirstName varchar(100));
Query OK, 0 rows affected (0.62 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable(FirstName) values('John');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable(FirstName) values('Mike');
Query OK, 1 row affected (0.12 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from DemoTable;

これにより、次の出力が生成されます-

+----+-----------+
| Id | FirstName |
+----+-----------+
| 1  | John      |
| 2  | Mike      |
+----+-----------+
2 rows in set (0.00 sec)

以下は、トリガーを作成し、AFTERDELETEも使用するためのクエリです-

mysql> DELIMITER //
mysql> CREATE TRIGGER history_of_Table
   AFTER DELETE
      ON DemoTable FOR EACH ROW
   BEGIN
      SELECT USER() INTO @userName;
      SELECT NOW() INTO @deleteDatetime;
   END; //
Query OK, 0 rows affected (0.18 sec)
mysql> DELIMITER ;

トリガーが機能しているかどうかを確認するには、テーブルから最初のレコードを削除します-

mysql> delete from DemoTable where Id=1;
Query OK, 1 row affected (0.26 sec)

上記では、テーブルから最初のレコードを削除しました。これは、DELETEコマンドを使用した後にトリガーをアクティブにする必要があることを意味します-

mysql> select @userName;

これにより、次の出力が生成されます-

+----------------+
| @userName      |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

トリガーが機能するたびに現在の時刻が表示されます-

mysql> select @deleteDatetime;

これにより、次の出力が生成されます-

+---------------------+
| @deleteDatetime     |
+---------------------+
| 2019-07-09 21:06:31 |
+---------------------+
1 row in set (0.00 sec)

  1. MySQLテーブル内のすべての重複レコードを削除するにはどうすればよいですか?

    テーブルから重複レコードを削除するには、DELETEコマンドを使用できます。テーブルを作成しましょう。 mysql> create table DuplicateDeleteDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.60 sec) テーブル「DuplicateDeleteDemo」へのレコードの挿入:ここでは、「John」を複製レコードとして3回追加しました。 mysql> insert into Duplicate

  2. PythonでMySQLデータベースに挿入した後にIDを取得するにはどうすればよいですか?

    まず、以下の要件を満たす必要があります。前提条件は次のとおりです。 MySQLバージョン8.0.12をインストールする必要があります。 Pythonバージョン3.6.3(32ビット)をインストールする必要があります。 pipコマンドを使用してpymysqlをインストールする必要があります。 「pymysql」をインストールするには 」とpipコマンドを使用します。 データベース名は「business」で、テーブル名はレコードを挿入した後のID3の「student」です。 これがクエリです。 select *from student; 以下は出力です。 +------+