|   | 
            
			 
   
     
        MySQL Trigger สร้าง Running Number หลังจาก Insert       | 
   
 
			
  MySQL Trigger สร้าง Running Number หลังจาก Insert สร้าง Running Number บน MySQL Database หลังจาก Insert โดยทำการต่อสคริง id กับปี ซึ่ง id เป็น Primary Key และ AUTO_INCREMENT 
 
รายละเอียดตารางที่จะใช้ 
 
CREATE TABLE `employee` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(15) DEFAULT NULL,
  `last_name` varchar(15) DEFAULT NULL,
  `start_date` date DEFAULT NULL,
  `end_date` date DEFAULT NULL,
  `salary` float(8,2) DEFAULT NULL,
  `city` varchar(10) DEFAULT NULL,
  `description` varchar(15) DEFAULT NULL,
  `Runno` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=latin1;
  
 
 
BEFORE INSERT สร้าง TRIGGER ได้ แต่เมื่อ insert ข้อมูลแล้ว Runno=C00012 
ที่ต้องการคือ Runno=C02512 โดย 25 คือ id ที่เป็น primary key ของตาราง 
 
delimiter $$
CREATE TRIGGER `myTrigger1` 
  BEFORE INSERT ON `employee`
FOR EACH ROW 
BEGIN
  
  IF ((length(NEW.id)) = 1) THEN
    SET NEW.Runno = CONCAT('C00',NEW.id,(SUBSTRING((DATE_FORMAT(CURRENT_TIMESTAMP,"%Y")),3,2))); 
  ELSEIF ((length(NEW.id)) = 2) THEN
    SET NEW.Runno = CONCAT('C0',NEW.id,(SUBSTRING((DATE_FORMAT(CURRENT_TIMESTAMP,"%Y")),3,2))); 
  ELSE
    SET NEW.Runno = CONCAT('C',NEW.id,(SUBSTRING((DATE_FORMAT(CURRENT_TIMESTAMP,"%Y")),3,2))); 
  END IF;
  
END$$
delimiter ;
 
 
คือคือคิวรี ที่ใช้ insert  
 
insert into Employee(first_name, last_name, start_date, end_Date,   salary,  City,       Description)
 values('James',    'Cat',     '19960917',  '20020415', 1232.78,'Vancouver', 'Tester');
 
 
 
ถ้าเปลี่ยน BEFORE INSERT เป็น AFTER INSERT ติด error สร้าง TRIGGER ไม่ได้      
		          
                 
    
                 Reference : http://mimi              					
			
              			                           			
 |