Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Pemicu dalam SQL

Dalam artikel ini, kita akan belajar tentang konsep trigger dalam SQL dan implementasinya dengan bantuan sebuah contoh.

Pemicu dalam Bahasa Kueri Terstruktur adalah sekumpulan pernyataan prosedural yang dieksekusi secara otomatis ketika ada umpan balik untuk peristiwa tertentu pada tabel di database. Pemicu digunakan untuk melindungi integritas data dalam database.

Mari kita lihat situasi berikut untuk memahami konsep trigger dalam SQL:

Misalkan Supriya adalah manajer teknologi informasi di sebuah perusahaan multinasional. Ketika catatan karyawan baru dimasukkan ke dalam database, dia harus mengirim pesan 'Selamat' kepada setiap karyawan baru. Jika ada lima atau enam pegawai, Supriya bisa melakukannya secara manual, tapi jika pegawai baru lebih dari seribu, maka dalam kondisi seperti itu, dia harus menggunakan trigger di database.

Oleh karena itu, Supriya harus membuat trigger di tabel, yang secara otomatis akan mengirimkan pesan 'Selamat' kepada karyawan baru setelah catatan mereka dimasukkan ke dalam database.

Pemicu selalu dieksekusi dengan tabel tertentu dalam database. Jika kami menghapus tabel, semua pemicu yang terkait dengan tabel tersebut juga akan dihapus secara otomatis.

Pemicu dalam Bahasa Kueri Terstruktur dipanggil hanya sebelum peristiwa terjadi atau setelah peristiwa terjadi.

Hanya tiga peristiwa yang terjadi di pemicu sebelum atau sesudah peristiwa yaitu peristiwa Sisipkan, peristiwa Perbarui, atau peristiwa Hapus.

1. MASUKKAN Acara :Event insert terjadi setiap kali record baru dimasukkan ke dalam tabel.

2. PERBARUI Acara :Peristiwa pembaruan terjadi setiap kali catatan yang ada diperbarui dalam tabel.

3. HAPUS Acara: Event Delete terjadi setiap kali record dihapus dari tabel.

Jenis pemicu dalam Bahasa Kueri Terstruktur

Berikut adalah enam jenis pemicu yang digunakan dalam Bahasa Kueri Terstruktur:

1. SETELAH MASUKKAN Pemicu:

Pemicu setelah penyisipan dipanggil dalam SQL setelah catatan dimasukkan ke dalam tabel.

2. SETELAH PEMBARUAN Pemicu:

Pemicu setelah pembaruan dipanggil dalam SQL setelah catatan yang ada di tabel diperbarui.

3. SETELAH HAPUS Pemicu:

Pemicu after delete dipanggil dalam SQL setelah record dihapus dari tabel.

4. SEBELUM MASUKKAN Pemicu:

Pemicu sebelum penyisipan dipanggil dalam SQL sebelum catatan dimasukkan ke dalam tabel.

5. SEBELUM PEMBARUAN Pemicu:

Pemicu sebelum pembaruan dipanggil dalam SQL sebelum catatan yang ada di tabel diperbarui.

6. SEBELUM MENGHAPUS Pemicu:

Pemicu sebelum penghapusan dipanggil dalam SQL sebelum catatan dihapus dari tabel.

Sintaks pemicu dalam SQL:

CREATE TRIGGER Trigger_Name  

[BEFORE | AFTER]  [Insert | Update | Delete] 

ON [Table_Name] 

[FOR EACH ROW | FOR EACH COLUMN] 

AS 

Set of SQL Statement
  • Dalam sintaks pemicu, kita harus mendefinisikan nama pemicu tepat setelah kata kunci CREATE TRIGGER dalam sintaks.
  • Setelah nama pemicu, kita harus menentukan pemicu mana yang ingin kita panggil, pemicu sebelum atau kata kunci pemicu setelah dengan nama peristiwa.
  • Kemudian, kita harus menyebutkan nama tabel yang memicu terjadinya.
  • Setelah nama tabel, kita harus menentukan pemicu pada tingkat baris atau pemicu tingkat kolom.
  • Dan pada akhirnya, kita harus menulis pernyataan SQL yang bekerja pada peristiwa yang terjadi.

Contoh pemicu dalam SQL

Untuk memahami konsep pemicu dalam SQL, kita harus membuat tabel di mana pemicu akan dieksekusi.

Kueri berikut membuat tabel Siswa dalam database SQL.

CREATE TABLE Student(

Student_rollno INT NOT NULL PRIMARY KEY,

FirstName varchar(40),

English_Marks INT,

Physics_Marks INT,

Chemistry_Marks INT,

Biology_Marks INT,

Maths_Marks INT,

Total_Marks INT,

Percentage INT);

Kueri berikut menunjukkan struktur tabel Siswa:

Mahasiswa DESC;

Field Jenis NULL Kunci Bawaan Ekstra
Student_RollNo INT TIDAK PRI NULL
Nama_Depan Varchar(40) YA NULL
Bahasa Inggris_Marks INT YA NULL
Fisika_Marks INT YA NULL
Mark_Kimia INT YA NULL
Tanda_Biologi INT YA NULL
Matematika_Marks INT YA NULL
Total_Marks INT YA NULL
Persentase INT YA NULL

Kueri berikut memicu pemicu sebelum penyisipan catatan siswa dalam tabel:

CREATE TRIGGER Student _Marks  

BEFORE INSERT 

ON 

Student 

FOR EACH ROW 

SET new.Total_Marks = new.English_Marks + new.Physics_Marks + new.Chemistry_Marks + new.Biology_Marks + new.Maths_Marks,   

new.Percentage = ( new.Total_Marks / 500) * 100;

Kueri berikut menyisipkan catatan ke tabel Siswa.

INSERT INTO Student (Student_RollNo, First_Name, English_Marks, Physics_Marks, Chemistry_Marks,Biology_Marks, Maths_Marks, Total_Marks, Percentage) VALUES ( 1, ‘Raman’, 90, 80, 75, 70 ,92, 0, 0);  

Untuk memeriksa output dari pernyataan INSERT di atas, Anda harus mengetikkan pernyataan SELECT berikut:

SELECT * FROM Student

Keluaran:

Student_RollNo Nama_Depan Bahasa Inggris_Marks Fisika_Marks Nilai_Kimia Tanda_Biologi Maths_Marks Total_Marks Persentase
1 Raman 90 80 75 70 92 407 81

Keuntungan Pemicu di SQL

Berikut adalah tiga keuntungan utama pemicu dalam Bahasa Kueri Terstruktur:

  1. SQL menyediakan cara alternatif untuk memelihara data dan integritas referensial dalam tabel.
  2. Pemicu membantu dalam menjalankan tugas terjadwal secara otomatis.
  3. Mereka menangkap kesalahan di lapisan basis data berbagai bisnis.
  4. Mereka mengizinkan pengguna database untuk memvalidasi nilai sebelum memasukkan dan memperbarui.

Kekurangan Pemicu di SQL

Berikut ini adalah kelemahan utama dari trigger di Structured Query Language:

  1. Mereka tidak dikompilasi.
  2. Tidak mungkin menemukan dan men-debug kesalahan di pemicu.
  3. Jika kita menggunakan kode kompleks di pemicu, itu membuat aplikasi berjalan lebih lambat.
  4. Pemicu meningkatkan beban tinggi pada sistem database.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pulihkan Database WordPress Anda dengan WP-CLI

  2. Bagaimana cara membuat kolom unik dalam SQL?

  3. Meminimalkan dampak pelebaran kolom IDENTITAS – bagian 1

  4. Bagaimana tidak memanggil prosedur tersimpan yang dikompilasi secara asli Hekaton

  5. Menerapkan Aturan Bidang Menggunakan Klasifikasi