Heim > php教程 > PHP开发 > SQL-Trigger (Einfügen, Aktualisieren, Löschen)

SQL-Trigger (Einfügen, Aktualisieren, Löschen)

高洛峰
Freigeben: 2016-12-14 16:19:08
Original
1478 Leute haben es durchsucht

--Insert Trigger
Create Trigger tri_insert
on student  –  der Name der zu ändernden Tabelle
zum Einfügen  –  wird beim Einfügen eines Datenelements in die Tabelle
als
ausgelöst deklarieren Sie @student_id char(10) – Definieren Sie eine Variable
SELECT @student_id=s.student_id from – Weisen Sie den Wert des angegebenen abgefragten Felds der Variablen zu
student s inner join inserted i
on s . student_id=i.student_id
if @student_id='0000000001'
begin
Raiserror('Cannot insert student number of 1!',16,8)
rollback tran
end
go

--Update-Trigger
create tri_update
on student – ​​der Name der zu ändernden Tabelle
für die Aktualisierung – wird ausgelöst, wenn ein Datenelement im geändert wird Tabelle
as
if update(student_id)
begin
Raiserror('Student ID kann nicht geändert werden!',16,8)
rollback tran
end
go


--Auslöser löschen
Trigger erstellen tri_delete
on student – ​​der Name der Tabelle, die geändert werden soll
zum Löschen – wird ausgelöst, wenn ein Datenelement aus der Tabelle gelöscht wird
als
@student_id varchar(10) deklarieren
@student_id=student_id aus gelöscht auswählen
if @student_id='admin'
begin
Raiserror('error',16,8)
rollback tran
end

Erläuterung: Beim Löschen von Daten können Sie davon ausgehen, dass die Datenbank die gelöschten Daten in eine gelöschte temporäre Tabelle einfügt. Wir können das Feld einfach aus „gelöscht“ auswählen 🎜>Das Prinzip ist beim Einfügen das gleiche, außer dass die einzufügenden Daten in der eingefügten Tabelle platziert werden.
Der Aktualisierungsvorgang kann so betrachtet werden, dass er zuerst den Zeilendatensatz löscht und ihn dann einfügt. Auf diese Weise wird der Aktualisierungsvorgang tatsächlich für die gelöschte Tabelle und die eingefügte Tabelle ausgeführt, sodass keine aktualisierte Tabelle vorhanden ist Wenn die beiden Tabellen eine Primär- und Fremdschlüsselbeziehung haben, löschen Sie zu diesem Zeitpunkt auch die Daten in der Untertabelle, wenn Sie einen Auslöser verwenden. Es hat keine Auswirkung, da der Auslöser ausgelöst wird, nachdem Sie die Tabelle gelöscht haben. Ja, er wird zu diesem Zeitpunkt direkt beendet und zeigt an: „Es besteht eine Primär- und Fremdschlüsselbeziehung und kann nicht gelöscht werden usw.“. haben keine Wirkung


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage