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

別のテーブルに行を挿入するMySQLトリガー?


まず、テーブルを作成しましょう。 CREATEコマンドを使用してテーブルを作成します。

mysql> create table Table1
   -> (
   -> id int,
   -> name varchar(100)
   -> );
Query OK, 0 rows affected (0.62 sec)

別のテーブルを作成しましょう。

mysql> create table Table2
   -> (
   -> id int,
   -> name varchar(100)
   -> );
Query OK, 0 rows affected (0.49 sec)

さて、トリガーを作成する方法は次のとおりです。

mysql> delimiter #
mysql> create trigger Table1Trigger after insert on Table1
   -> for each row
   -> begin
   ->  insert into Table2(id, name) values (new.id, new.name);
   -> end#
Query OK, 0 rows affected (0.29 sec)

mysql> delimiter ;

トリガーを作成するには、区切り文字を変更する必要があります。

行をTable1に挿入すると、トリガーがアクティブになり、レコードがTable2に挿入されます。表1にレコードを挿入します。

mysql> insert into Table1 values(1,'John'),(2,'Smith'),(3,'Carol');
Query OK, 3 rows affected (0.28 sec)
Records: 3  Duplicates: 0  Warnings: 0

レコードが両方のテーブルに挿入されているかどうかを確認します。

mysql> select *from Table1;

これは、表1に正常に挿入されたレコードを示す出力です。

+------+-------+
| id   | name  |
+------+-------+
|    1 | John  |
|    2 | Smith |
|    3 | Carol |
+------+-------+
3 rows in set (0.00 sec)

2番目のテーブルを確認します。

mysql>  select *from Table2;

以下は、表2に正常に挿入されたレコードを示す出力です。

+------+-------+
| id   | name  |
+------+-------+
|    1 | John  |
|    2 | Smith |
|    3 | Carol |
+------+-------+
3 rows in set (0.00 sec)

  1. 別のテーブルの値を使用したINSERTINTOのMySQLクエリ?

    これには、INSERTINTOSELECTステートメントを使用します。 テーブルを作成しましょう- 例 mysql> create table demo82    -> (    -> id int,    -> name varchar(20)    -> ); Query OK, 0 rows affected (2.06 挿入コマンド-を使用して、いくつかのレコードをテーブルに挿入します。 例 mysql> insert into demo82 values(100,&

  2. MySQLのあるテーブルから別のテーブルにデータを挿入しますか?

    あるテーブルから別のテーブルにデータを挿入するには、INSERTINTOSELECTステートメントを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1    -> (    -> Id int,    -> FirstName varchar(20)    -> ); Query OK, 0 rows affected (0.49 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> i