2015-01-22 2 views
1

나는 sample_table이라는 테이블을 가지고 있고 컬럼은 col_a, col_b, col_c이다. 행 삽입시 col_c (concat (col_a, col_b)와 같이)를 업데이트 할 트리거를 MySQL 5.6에서 생성하려고합니다. 나는 이것을 위해 작성한 쿼리는이 SQL을 실행하는 동안mysql에서 트리거를 생성하는 쿼리

create trigger trg_sample_table 
after insert on sample_table 
for each row 
begin 
set col_c=concat(col_a,col_b) 
end; 

, 나는 점점 오전 오류는 다음과 같습니다 ERROR 1064 (42000) : 당신은 당신의 SQL 구문에 오류가 있습니다; MySQL 서버 버전에 해당하는 매뉴얼에서 올바른 구문을 찾아 라인 6의 'end'근처에서 사용하십시오.

필요에 따라 트리거를 만들 수 있습니까?

답변

2

before insert으로 지정해야합니다. 이 시도 :

create trigger trg_sample_table before insert on sample_table for each row 
    begin 
     set new.col_c=concat(new.col_a,new.col_b); 
    end; 

당신은 단지 after insert 트리거에 삽입 된 행을 수정할 수 없습니다. 수정하려면 before insert으로 완료해야합니다.

+0

고맙습니다. 잘 작동합니다. 그러나 해당 테이블에 레코드를 삽입하는 동안 다음과 같이 오류가 발생합니다. 저장된 함수/트리거에서 'sample_table'테이블을 업데이트 할 수 없습니다.이 저장 함수/트리거를 호출 한 문에서 이미 사용 중이기 때문입니다. 이 문제의 원인을 알려주십시오. –

관련 문제