【问题标题】:ErrCode with "Select Into Outfile with a variable" - Confusing PermissionsErrCode 与“选择进入带有变量的 Outfile” - 混淆权限
【发布时间】:2018-08-08 08:17:32
【问题描述】:

背景:我在 mysql 数据库中使用 phpMyAdmin (MySQL Workbench)。我编写了一些 PHP 代码来导入数据库中的数据并使用 windows 的任务调度程序执行它。 这很好用!

现在我想将一些数据导出到 Windows 文件夹中的文件中。首先,我在 phpMyAdmin 中编写 SQL 代码以查看一些调试信息。 这就是问题所在。

我的主题: 我想导出我的数据库的一些列。我的目标是在文件名中放置一个变量CURRENT_TIMESTAMP。为此,我使用Concat 语句。 我的代码(发布在下面)得到以下错误的结果:

无法创建/写入文件“C:\Temp\Export\2018-08-08 09:21:27.txt”(错误代码:13“权限被拒绝”)

有趣的是,如果我将变量 CURRENT_TIMESTAMP 替换为例如“Hello World”没有错误,我的文件是在文件夹中创建的。

这是我的代码:

*set @sql = concat("SELECT `LS_ID_Nr`,
        `Stk_pro_Krt_DL` * `Krt_DL` + `RB_Stk_pro_Krt_DL` * `RB_Krt_DL`, 
        `Umstellzeit`, 
        `Produktionszeit`, 
        `Teilmeldung`, 
        `Fertigmeldung` INTO OUTFILE 'C:/Temp/Export/",CURRENT_TIMESTAMP,".txt' fields terminated by ';' lines terminated by '\r\n' From praemie where Proof_P = 0");
prepare s1 from @sql;
execute s1;
DROP PREPARE s1;
UPDATE praemie SET Proof_P = 1 WHERE Proof_P = 0;*

有人知道为什么Permission Error 会使用变量吗?提前致谢!

【问题讨论】:

    标签: mysql variables permissions select-into-outfile


    【解决方案1】:

    呜呜呜……

    我现在明白了! 问题是,窗口不处理文件名中的“:”。所以我必须像这样使用 Date_Format 语句编辑代码:

    set @sql = 
    concat("SELECT `LS_ID_Nr`, `Stk_pro_Krt_DL` * `Krt_DL` + `RB_Stk_pro_Krt_DL` * `RB_Krt_DL`, 
    `Umstellzeit`, `Produktionszeit`, `Teilmeldung`, `Fertigmeldung` 
    INTO OUTFILE 'C:/Temp/Export/Test - ", DATE_FORMAT(NOW(), '%Y%m%d%H%i%s')," - Test.txt'
     fields terminated by ';' 
    lines terminated by '\r\n' 
    From praemie where Proof_P = 0")
    

    【讨论】:

      猜你喜欢
      • 2017-08-05
      • 1970-01-01
      • 1970-01-01
      • 2013-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-22
      • 1970-01-01
      相关资源
      最近更新 更多