Thursday, October 3, 2013

cara membuat triger di MYSQL

Tags

Triger adalah prosedur yang tersimpan di microsoft SQL Server yang secara otomasis dijalankan jika ada data didalam ,tabel berubah karna eksekusi perintah sql (insert,update dan delete)beberapa hal yang dapat dilakukan triger adalah :

|>>|Mengupdate tabel-tabel lain jika ada perubahan (Insert, update atau delete) pada tabel yang sedang aktif.
|>>Untuk mengimplementasikan suatu sistem log. Setiap terjadi perubahan, secara otomatis akan menyimpan ke tabel log.
|>>untuk melakukan validasi dan verifikasi data sebelum data tersebut disimpan.
Berikut adalah cara membuat Triger :

mysql> create table ipk(nim char(2),
    -> ipk decimal(3,2));
Query OK, 0 rows affected (0.14 sec)

mysql> create table predikat(nim char(2),
    -> predikat char(30));
Query OK, 0 rows affected (0.13 sec)

mysql> create trigger tambah_predikat
    -> after insert on ipk for each row
    -> begin
    -> if new.ipk >= 2.75 and new.ipk <= 3.00 then
    -> set @xPredikat='Memuaskan';
    -> elseif new.ipk > 3.00 and new.ipk <=3.50 then
    -> set @xPredikat='Sangat Memuaskan';
    -> elseif new.ipk > 3.50 and new.ipk <=3.75 then
    -> set @xPredikat='Dengan Pujian';
    -> elseif new.ipk > 3.75 and new.ipk <=4 then
    -> set @xPredikat='Cumlaude';
    -> else
    -> set @xPredikat='Tidak ada kriteria';
    -> end if;
    -> insert into predikat values (new.nim,@xPredikat);
    -> end$$
Query OK, 0 rows affected (0.11 sec)

mysql> delimiter ;
mysql> select * from ipk;
Empty set (0.00 sec)

mysql> select * from predikat;
Empty set (0.00 sec)

mysql> insert into ipk values ('01',2.78);
Query OK, 1 row affected (0.09 sec)

mysql> select * from ipk;
+------+------+
| nim  | ipk        |
+------+------+
| 01   | 2.78      |
+------+------+
1 row in set (0.00 sec)

mysql> select * from predikat;
+------+-----------+
| nim  | predikat       |
+------+-----------+
| 01   | Memuaskan |
+------+-----------+
1 row in set (0.00 sec)

mysql> insert into ipk values ('02',3.87);
Query OK, 1 row affected (0.00 sec)

mysql> select * from ipk;
+------+------+
| nim  | ipk        |
+------+------+
| 01   | 2.78      |
| 02   | 3.87      |
+------+------+
2 rows in set (0.00 sec)

mysql> select * from predikat;
+------+-----------+
| nim  | predikat       |
+------+-----------+
| 01   | Memuaskan |
| 02   | Cumlaude    |
+------+-----------+
2 rows in set (0.00 sec)

mysql> select * from ipk;

Artikel Terkait


EmoticonEmoticon