使用 Prepare 语句时出现语法错误 MySQL

Syntax error when using Prepare Statement MySQL

我正在尝试创建一个触发器,它将使用数据库中的数据创建一个文件,并且该文件每次都会有不同的名称。我正在尝试放置 DateTime,但简单的增量会更好,但我不知道怎么做,因为我们不能使用任何变量。如果同时创建两个文件会更好。我的代码的问题是在使用 Prepare/Execute 语句时出现错误。

我明白了 'Syntax error near PREPARE s1...' 怎么了?

SET @my_var = 
    CONCAT (
       "SELECT * FROM table_name INTO OUTFILE 'file_path/log-"
       , DATE_FORMAT( NOW(), '%Y%m%d')
       , ".txt'"
    );
PREPARE s1 FROM @my_var;
EXECUTE s1;
DEALLOCATE PREPARE s1;

我正在使用 MySQL 5.7.26 和 PhpMyAdmin。

我发现无法做到 here

当前 MySQL (5.7) 手册第 D.1 节对存储程序的限制指出

  • SQL 准备语句(PREPARE、EXECUTE、DEALLOCATE PREPARE)可以用在存储过程中,但不能用在存储函数或触发器中。因此,存储函数和触发器不能使用动态 SQL(您将语句构造为字符串然后执行它们)。
  • 通常,SQL 预准备语句中不允许的语句在存储程序中也不允许。对于作为准备好的语句支持的语句列表。
  • 因为局部变量仅在存储程序执行期间在范围内,所以在存储程序中创建的准备语句中不允许引用它们。准备语句的作用域是当前会话,而不是存储的程序,所以语句可以在程序结束后执行,此时变量将不再在作用域中。

所以你可以看到这是不允许的。如果有人有替代方案,请发表评论。