2014-09-23 2 views
0

첫 번째 열과 두 번째 열을 세 번째 열로 연결하는 트리거를 만들었습니다.병합하지 않는 열에 삽입하기 전의 트리거

USE `customer_1`; 
DELIMITER $$ 
CREATE DEFINER=`root`@`%` TRIGGER `Metric1_anpr_vega_BINS` BEFORE INSERT ON `Metric1_anpr_vega` FOR EACH ROW 
BEGIN 
    SET NEW.image_id = CONCAT(NEW.camera_id,'-', NEW.id); 
END 

Id  camera_id image_id 
4567 236   236-0 

는 exceuted 삽입 한 Statment 후 image_Id의 ID 값을 얻을 것이 무엇 트리거

(4567 대신이 '0'트리거 될 때 여기에 내가 행의 ID를 얻을 수 없다). 내가 삽입 한 후 사용하는 경우

이 오류를 얻을 수 - NEW 행의 업데이트 대신 삽입 한 후 트리거

+0

사용 후에서 허용되지 않습니다. – VMai

+0

삽입하기 전에 삽입 된 ID를 가져올 수 없습니다. 기본 키가 삽입되어 있으면 삽입 할 수 없습니다. 삽입 후에 동일한 테이블을 업데이트 할 수 없습니다. 하나의 아이디어는 마지막 ID를 얻은 다음 하나씩 증가시키고 image_id를 설정하는 것입니다. –

+0

마지막 ID를 어떻게 얻을 수 있는지 말해 줄 수 있습니까? –

답변

0
USE `customer_1`; 
DELIMITER $$ 
CREATE DEFINER=`root`@`%` TRIGGER `Metric1_anpr_vega_BINS` AFTER INSERT ON `Metric1_anpr_vega` FOR EACH ROW 
BEGIN 
    SET NEW.image_id = CONCAT(NEW.camera_id,'-', NEW.id); 
END 
+0

NEW 행의 업데이트는 after 트리거에서 허용되지 않습니다. –

관련 문제