Heim  >  Artikel  >  Datenbank  >  Vergleich der Verwendung von Triggern in Oracle und der Verwendung von Triggern in MySQL

Vergleich der Verwendung von Triggern in Oracle und der Verwendung von Triggern in MySQL

黄舟
黄舟Original
2017-01-18 11:08:391608Durchsuche

Relationales MySQL-Datenbankverwaltungssystem

MySQL ist ein kleines relationales Open-Source-Datenbankverwaltungssystem, das von der schwedischen Firma MySQL AB entwickelt wurde. MySQL wird häufig auf kleinen und mittelgroßen Websites im Internet verwendet. Aufgrund der geringen Größe, der hohen Geschwindigkeit, der niedrigen Gesamtbetriebskosten und insbesondere der Eigenschaften von Open Source wählen viele kleine und mittlere Websites MySQL als Website-Datenbank, um die Gesamtbetriebskosten der Website zu senken.


Dieser Artikel stellt hauptsächlich den Fallvergleich der Verwendung von Triggern durch Oracle und die Verwendung von MySQL vor. Dieser Artikel erklärt es anhand von Beispielen und gibt Ihnen eine sehr detaillierte Einführung it Siehe Folgendes:

1. Trigger

1. Trigger werden als unabhängige Objekte in der Datenbank gespeichert,

2. Trigger müssen nicht aufgerufen werden , sie sind Ein Ereignis löst den Vorgang aus

3. Trigger können keine Parameter empfangen

-- Triggeranwendung

Zum Beispiel: Xiaonei.com, Kaixin.com, facebook, wann Wenn Sie ein Protokoll veröffentlichen und Freunde automatisch benachrichtigen, müssen Sie zunächst ein Protokoll hinzufügen und dann Einträge in die Tabelle schreiben.

– Trigger sind sehr effizient

Beispiel: Bei Forumbeiträgen möchten Sie jedes Mal, wenn ein Beitrag eingefügt wird, den Zeitpunkt des letzten Beitrags und die Gesamtzahl der Beitragsfelder in der Forumtabelle synchronisieren. Zu diesem Zeitpunkt ist die Verwendung von Triggern sehr effizient.

2. Oracle verwendet PL/SQL zum Schreiben von Triggern

1.--Allgemeine Syntax zum Erstellen von Triggern in PL/SQL

create [or replace] trigger trigger_name
{before | after}
{insert | delete | update [of column[,column ... ]]} on table_name
[for each row]
[where condition]
--trigger_body;
begin 
end;

2.--Übung

--问题3.使用:old 和 :new 操作符
create or replace trigger tri_update
after
update on employees
for each row 
begin
  dbms_output.put_line('更新前:'||:old.salary||' 更新后:'||:new.salary);
end;
--问题2.编写一个触发器,在向 emp 表中插入记录时 打印'hello'
create or replace trigger tri_update
after
insert on emp
begin
  dbms_output.put_line('ok');
end;
--问题1.一个helloworld级别的触发器
--创建一个触发器,在更新employees表的时候触发
create or replace trigger tri_update
after
update on employees
for each row --想在最后执行完打印一个ok,把这句话去掉
begin
  dbms_output.put_line('ok');
end;
--执行
update employees
set salary = salary+1
where department_id = 80

3. Verwendung von Triggern in MySQL

--假设有两张表 board 和 article
create table board(
  id int primary key auto_increment,
  name varchar(50),
  articleCount int
);
create table article(
  id int primary key auto_increment,
  title varchar(50),
  bid int references board(id)
);
--创建一个触发器
delimiter $$
create trigger insertArticle_trigger 
after insert on article 
for each row
begin
  update board set articleCount=articleCount+1
where id = new.bid;
end;
$$
delimiter ;
--当我们对article表执行插入操作的是后就会触发这个触发器
insert into board values(null,'test_boardname',0);
insert into article values(null,'test_title',1);
--执行完这条插入语句后,board表中的articleCount字段值回+1;这个操作由触发器完成。

Das Obige ist der Vergleich der Fälle der Verwendung von Triggern in Oracle und der Verwendung von Triggern in MySQL. Bitte achten Sie darauf zu PHP Chinese Net (www.php.cn)!


Stellungnahme:
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
Vorheriger Artikel:MySQL-ZeichensatzverarbeitungNächster Artikel:MySQL-Zeichensatzverarbeitung