DBI에 대해 "create trigger"를 실행할 수 있어야합니다. 구분 기호 명령을 사용할 수없는 것 같습니다. 누구든지이 일을 할 수있는 방법을 찾을 수 있습니까?Perl, DBI 및 MySQL 구분 기호
코드 :
use strict;
use DBI;
my $dbargs = {mysql_auto_reconnect => 1,
AutoCommit => 0,
RaiseError => 1,
ShowErrorStatement => 1};
my $dsn = "DBI:mysql:database=xdisp;host=cycldev06";
my $dbh = DBI->connect($dsn, 'sqluser', '', $dbargs);
my $sql = qq{
DELIMITER //
CREATE TRIGGER `hardware_last_status` BEFORE UPDATE
ON `hardware` FOR EACH ROW BEGIN
IF NEW.status != OLD.status AND NEW.last_status = OLD.last_status THEN
SET NEW.last_status = OLD.status;
END IF;
END
//
};
$dbh->do($sql);
결과 :
DBD::mysql::db do failed: 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 'DELIMITER //
CREATE TRIGGER `hardware_last_status` BEFORE UPDATE
' at line 1 at test.pl line 24.
및 SQL은 MySQL의 명령 줄에서 잘 작동하는.
+1입니다. 나는 SO와 일반적으로 그 이상을보고 싶습니다. – pilcrow