DELIMITER $$
USE `database`$$
DROP TRIGGER /*!50032 IF EXISTS */ `nambah`$$
CREATE
/*!50017 DEFINER = 'root'@'localhost' */
TRIGGER `nambah` BEFORE INSERT ON `transactions`
FOR EACH ROW BEGIN
DECLARE str_len INT DEFAULT 6; /*jumlah karakter*/
DECLARE ready INT DEFAULT 0;
DECLARE rnd_str TEXT;
WHILE NOT ready DO
SET rnd_str := LPAD(CONV(FLOOR(RAND()*POW(36,str_len)), 10, 36), str_len, 0);
IF NOT EXISTS (SELECT * FROM transactions WHERE trans_code = rnd_str) THEN
SET new.trans_code = rnd_str;
SET ready := 1;
END IF;
END WHILE;
END;
$$
DELIMITER ;