여기 mycode입니다
감사 테이블이라는 변경 추적자 테이블에 제품 테이블이라고 테이블에 삽입 한 후 트리거를 만들려고합니다.
이렇게
DELIMITER //
CREATE TRIGGER product_table_after_insert
AFTER INSERT
ON product_table FOR EACH ROW
BEGIN
DECLARE l_product_description varchar(500);
DECLARE l_product_number int;
set @l_table_name = 'product_table';
set @l_action = 'INSERT';
set @l_table_column = 'all columns';
set @l_description = 'new row inserted';
select p.product_description ,p.product_number into @l_product_description, @l_product_number from product_table p where p.product_description = (select max(pg.product_number)from product_table pg);
-- Insert record into audit table
INSERT INTO audit_table_test
( table_name,
changed_row_id,
action,
table_column,
change_desciption,
change_time
)
VALUES
( l_table_name,
l_product_number,
l_action,
l_table_column,
l_description,
SYSDATE()
)
END
//
DELIMITER ;
이것은 내가 얻는 오류입니다.
나는이 모든 방법을 시도했다
사용 |
, S
등 대신 // 및
삭제 ;
배치 종료 후 //
또는 \
또는 $$
함께 최종 이하
아무것도 작동하지 않습니다. 누군가 나를 도와주세요.
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END' at line 32
누군가 나를 도와주세요
@juergen이 주석으로 제공 한 솔루션은 잘 작동합니다. 즉 , 삽입 문 뒤에 추가 ;
(END 앞에) 실수를 찾아 주셔서 감사합니다. 나는 약 4 시간 동안 그것을 찾고 있었기 때문에 대답은 여기에있다 :
DELIMITER //
CREATE TRIGGER product_table_after_insert
AFTER INSERT
ON product_table
FOR EACH ROW
BEGIN
DECLARE l_product_description varchar(500);
DECLARE l_product_number int;
set @l_table_name = 'product_table';
set @l_action = 'INSERT';
set @l_table_column = 'all columns';
set @l_description = 'new row inserted';
select p.product_description ,p.product_number
into @l_product_description, @l_product_number
from product_table p
where p.product_description =
(select max(pg.product_number)
from product_table pg);
-- Insert record into audit table
INSERT INTO audit_table_test
( table_name,
changed_row_id,
action,
table_column,
change_desciption,
change_time
)
VALUES
( l_table_name,
l_product_number,
l_action,
l_table_column,
l_description,
SYSDATE()
); //<<---- Semicolon needed to be here
END
//
DELIMITER;
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다