Anda di halaman 1dari 1

CREATE TABLE daftar_nama(

nik CHAR(10) NOT NULL,


nama VARCHAR(35) NOT NULL,
jk CHAR(1) NOT NULL,
no_hp VARCHAR(13),
alamat VARCHAR(100) NOT NULL,
tempat_lahir VARCHAR(20) NOT NULL,
tanggal_lahir DATE NOT NULL,
email VARCHAR(40),
agama CHAR(1) NOT NULL
);

ALTER TABLE daftar_nama


ADD CONSTRAINT nik_pk
PRIMARY KEY(nik);

DELIMITER //
CREATE OR REPLACE TRIGGER masuk_nik
BEFORE INSERT ON daftar_nama
FOR EACH ROW
BEGIN
DECLARE thn CHAR(2);
DECLARE bln CHAR(2);
DECLARE tgl CHAR(2);
DECLARE urut CHAR(4);
DECLARE v_id CHAR(10);
SELECT RIGHT(YEAR(NEW.tanggal_lahir),2) INTO thn;
SELECT RIGHT(MONTH(NEW.tanggal_lahir)+100,2) INTO bln;
SELECT RIGHT(DAY(NEW.tanggal_lahir)+100,2) INTO tgl;
SELECT RIGHT(COUNT(*)+10001,4) into urut from daftar_nama
WHERE tanggal_lahir = new.tanggal_lahir;
CASE
WHEN new.jk='L'THEN SELECT CONCAT(tgl,bln,thn,urut)
INTO v_id;
WHEN new.jk='P'THEN SELECT CONCAT(40+tgl,bln,thn,urut) into v_id;
END CASE;
SET NEW.nik=v_id;
END;
//

DELIMITER //
CREATE OR REPLACE PROCEDURE masuk_daftar_nama1
(p_nama VARCHAR(35), p_jk CHAR(1), p_hp VARCHAR(13), p_alamat VARCHAR(100),
p_tempat VARCHAR(100) , p_tanggal DATE, p_email VARCHAR(40),
p_agama CHAR(1))
BEGIN
INSERT INTO daftar_nama
(nama, jk, no_hp, alamat, tempat_lahir, tanggal_lahir, email, agama)
VALUES(p_nama, p_jk, p_hp, p_alamat, p_tempat, p_tanggal, p_email, p_agama);
END;
//

Anda mungkin juga menyukai