मुझे डीबीआई पर "ट्रिगर बनाने" जारी करने में सक्षम होने की आवश्यकता है। मुझे डिलीमीटर कमांड काम नहीं कर रहा है। क्या कोई इस काम को करने का कोई तरीका ढूंढ सकता है?पर्ल, डीबीआई और MySQL delimiter
कोड:
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 स्पष्ट रूप से 'ऑटोकॉमिट' और 'राइज एरर' निर्दिष्ट करने के लिए +1। मैं उसमें और अधिक सामान्य रूप से देखना चाहता हूं। – pilcrow