"ON INSERT"은에서 사용자 변수를 사용하십시오 나는 사용자 정의 변수와 깨끗한 트리거를 만들려고, 그래서 이것은 내 코드 절
SET @target_bdd = 'trigger_second';
SET @trigger_name = 'account_copy';
SET @table_name = 'account';
SET @primary_key = 'id';
DROP TRIGGER IF EXISTS `@trigger_name`;
DELIMITER $$
CREATE TRIGGER `@trigger_name` AFTER INSERT
ON `@table_name`
FOR EACH ROW BEGIN
INSERT INTO `@target_bdd`.`@table_name`
SELECT * FROM `@table_name`
WHERE `@primary_key` = NEW.`@primary_key`;
END $$
DELIMITER ;
하지만이 있습니다 오류 :
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 '@table_name
FOR EACH ROW BEGIN INSERT INTO `@target_bdd`.`@table_name` SELECT * ' at line 2
왜? 나는 다른 사람의 따옴표 ('')를 시도했지만 같은 오류 :(
없이 견적있다 :
ERROR 1064 (42000) : 당신은 당신의 SQL 구문에 오류가 있습니다, 즉 상당 설명서를 확인 줄에서 '@Target에 삽입을 BEGIN 각 행에 대해 @table_name ON 삽입 한 후 @trigger_name'근처를 사용할 수있는 권리 구문은 MySQL 서버 버전 1 내가 가진 사용자 정의 변수를 선언하려고
SQL 명령어는 다음과 같습니다 :
SET @sql = CONCAT(
'CREATE TRIGGER ',
@trigger_name,
' AFTER INSERT ON ',
@table_name,
' FOR EACH ROW BEGIN INSERT INTO ',
@target_bdd,
'.',
@table_name,
' SELECT * FROM ',
@table_name,
' WHERE ',
@primary_key,
' = NEW.',
@primary_key,
'; END'
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
하지만 오류 1295 (See in MySQL Documentation)
대단히 감사합니다. –