ホームページ >データベース >mysql チュートリアル >DELIMITER // MySQL トリガーでどのような役割を果たしますか?

DELIMITER // MySQL トリガーでどのような役割を果たしますか?

WBOY
WBOY転載
2023-08-26 10:41:072343ブラウズ

DELIMITER // 在 MySQL 的触发器中起什么作用?

DELIMITER // ステートメントのセミコロン (;) を // に変更するために使用できます。トリガー内でセミコロンを使用して複数のステートメントを記述できるようになりました。

これはトリガーのデモです。この例では、EmployeeSalary に 1000 未満を入力すると、デフォルトで 10000 になります。

まず、テーブルを作成しましょう。テーブルを作成するクエリは次のとおりです。 -

mysql> create table EmployeeTable
-> (
-> EmployeeId int,
-> EmployeeName varchar(100),
-> EmployeeSalary float
-> );
Query OK, 0 rows affected (0.76 sec)

テーブルを作成した後、挿入コマンドでトリガーを作成する必要があります。トリガーを作成するクエリは次のとおりです。

mysql> delimiter //
mysql> create trigger CheckSalary before insert on EmployeeTable
-> for each row if new.EmployeeSalary < 1000 then set
-> new.EmployeeSalary=10000;
-> end if;
-> //
Query OK, 0 rows affected (0.40 sec)
mysql> delimiter ;

これで、insert コマンドを使用してトリガーを確認できるようになります。挿入された EmployeeSalary が 1000 未満の場合、エラーは表示されませんが、デフォルト値 (私が指定した 10000) が保存されます。

レコードを挿入するクエリは次のとおりです -

mysql> insert into EmployeeTable values(1,&#39;Carol&#39;,500);
Query OK, 1 row affected (0.25 sec)

次に、select ステートメントを使用して、テーブル内のすべてのレコードを確認します。クエリは次のとおりです。

mysql> select *from EmployeeTable;

以下は出力です。

+------------+--------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary |
+------------+--------------+----------------+
| 1          | Carol        | 10000          |
+------------+--------------+----------------+
1 row in set (0.00 sec)

1000以上を入力すると番号のみが表示されます。 truncate コマンドを使用して、テーブルから以前のレコードを削除しました。

mysql> truncate table EmployeeTable;
Query OK, 0 rows affected (1.44 sec)

テーブルにレコードを挿入するクエリ。

mysql> insert into EmployeeTable values(2,&#39;Bob&#39;,1000);
Query OK, 1 row affected (0.14 sec)

mysql> insert into EmployeeTable values(3,&#39;Carol&#39;,2500);
Query OK, 1 row affected (0.19 sec)

これは、select ステートメントを使用してテーブル内のすべてのレコードをチェックするクエリです。

mysql> select *from EmployeeTable;

以下は出力です。

+------------+--------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary |
+------------+--------------+----------------+
| 2          | Bob          | 1000           |
| 3          | Carol        | 2500           |
+------------+--------------+----------------+
2 rows in set (0.00 sec)

上記の出力例を見ると、EmployeeSalary は 1000 以上です。これで給料がもらえます。 1000 未満の場合、デフォルト値は 10000 に設定されることに注意してください。

以上がDELIMITER // MySQL トリガーでどのような役割を果たしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。