Heim  >  Artikel  >  Datenbank  >  DELIMITER // Welche Rolle spielt es in MySQL-Triggern?

DELIMITER // Welche Rolle spielt es in MySQL-Triggern?

WBOY
WBOYnach vorne
2023-08-26 10:41:072324Durchsuche

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

DELIMITER // kann verwendet werden, um das Semikolon (;) einer Anweisung in // zu ändern. Jetzt können Sie mehrere Anweisungen mit Semikolons in Triggern schreiben.

Dies ist eine Demo des Triggers. Wenn Sie in diesem Beispiel ein EmployeeSalary von weniger als 1000 eingeben, wird es standardmäßig auf 10000 gesetzt.

Erstens erstellen wir eine Tabelle. Die Abfrage zum Erstellen der Tabelle lautet wie folgt:

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

Nach dem Erstellen der Tabelle müssen Sie einen Trigger für den Einfügebefehl erstellen. Die Abfrage zum Erstellen des Triggers lautet wie folgt.

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 ;

Jetzt können Sie den Befehl insert verwenden, um Trigger zu überprüfen. Wenn das eingegebene EmployeeSalary weniger als 1000 beträgt, wird kein Fehler angezeigt, aber es wird ein Standardwert gespeichert, den ich mit 10000 angegeben habe.

Die Abfrage zum Einfügen von Datensätzen lautet wie folgt:

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

Nun verwenden Sie die Select-Anweisung, um alle Datensätze in der Tabelle zu überprüfen. Die Abfrage lautet wie folgt.

mysql> select *from EmployeeTable;

Das Folgende ist die Ausgabe.

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

Wenn Sie 1000 oder mehr eingeben, wird nur Ihre Nummer angezeigt. Ich habe den Befehl „truncate“ verwendet, um frühere Datensätze aus der Tabelle zu löschen.

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

Abfrage zum Einfügen von Datensätzen in die Tabelle.

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)

Dies ist eine Abfrage, die mithilfe der Select-Anweisung alle Datensätze in der Tabelle überprüft.

mysql> select *from EmployeeTable;

Das Folgende ist die Ausgabe.

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

Sehen Sie sich die Beispielausgabe oben an: EmployeeSalary ist größer oder gleich 1000. Dadurch erhalten Sie Ihr Gehalt. Denken Sie daran: Wenn der Wert kleiner als 1000 ist, wird der Standardwert auf 10000 gesetzt.

Das obige ist der detaillierte Inhalt vonDELIMITER // Welche Rolle spielt es in MySQL-Triggern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen