我正在尝试在phpmyadmin中创建触发器,但出现错误
当我在SQL终端中运行此查询时,它运行良好。但是在触发器创建过程中,出现错误的流程错误,查询失败。
set @sql = CONCAT(
"SELECT * INTO OUTFILE 'C:/database/",DATE_FORMAT(NOW(), '%m-%Y'),
".csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '""' LINES TERMINATED BY '\r\n ' FROM weekevents"
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
答案 0 :(得分:0)
在MySQL中,触发器中不允许使用动态SQL。
SQL准备好的语句(
def foo(l,n,i,j): for item in l: if (i in item and j in item): return True return False
,PREPARE
,EXECUTE
)可用于存储过程,但不能用于存储函数或触发器。因此,存储的函数和触发器不能使用动态SQL (将语句构造为字符串然后执行它们)。
您实际上应该会出错:
#1336-存储函数或触发器中不允许使用动态SQL