DELIMITER // MySQLのトリガーで何をしますか?
DELIMITER //を使用して、ステートメントをセミコロン(;)から//に変更できます。これで、トリガーにセミコロンを使用して複数のステートメントを記述できます。
これがトリガーのデモです。この例では、1000未満のEmployeeSalaryを入力すると、デフォルトで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 ;
これで、挿入コマンドを使用してトリガーを確認できます。 1000未満のEmployeeSalaryを挿入した場合、エラーは発生しませんが、10000を指定したデフォルト値が保存されます。
レコードを挿入するためのクエリは次のとおりです-
mysql> insert into EmployeeTable values(1,'Carol',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または1000より大きい値を挿入すると、番号のみが表示されます。 truncateコマンドを使用してテーブルから前のレコードを削除しました。
mysql> truncate table EmployeeTable; Query OK, 0 rows affected (1.44 sec)
テーブルにレコードを挿入するためのクエリ。
mysql> insert into EmployeeTable values(2,'Bob',1000); Query OK, 1 row affected (0.14 sec) mysql> insert into EmployeeTable values(3,'Carol',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に設定されていることに注意してください。
-
MySQL SELECT(COLNAME)の括弧はどういう意味ですか?
SELECT(COLNAME)は、その列のエイリアスを作成していることを意味します。例を見て、テーブルを作成しましょう- mysql> create table DemoTable865( FirstName varchar(100), LastName varchar(100) ); Query OK, 0 rows affected (0.77 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable865 values('Chris
-
選択@@identityはMySQLで何をしますか?
@@identityは、現在のセッションのauto_increment列に最後に挿入された値を返します。まずテーブルを作成しましょう- mysql> create table DemoTable( UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, UserName varchar(100) ); Query OK, 0 rows affected (0.67 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoT