mysql - ErrCode 为 "Select Into Outfile with a variable"- 权限困惑

标签 mysql variables permissions select-into-outfile

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

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

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

Can't create/write to file 'C:\Temp\Export\2018-08-08 09:21:27.txt' (Errcode: 13 "Permission denied")

有趣的是,如果我将变量 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;*

有人知道为什么使用变量时会出现权限错误吗?提前致谢!

最佳答案

哦哦......

我现在明白了! 问题是,Windows 不处理文件名中的“:”。所以我必须使用 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")

关于mysql - ErrCode 为 "Select Into Outfile with a variable"- 权限困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51741813/

相关文章:

logging - Nginx docker (13:权限被拒绝)将请求记录到已安装的卷时

javascript - 传递 javascript 参数时递减数字

Objective-C ivar BOOL 不保留值(value)

JavaScript 变量在函数内部不会改变

javascript - 是否修改对象 : to use a variable, 中的数组的性能?

Symfony2 ACL 访问多个用户的多个对象

MySQL 5.6.20 alter ignore table 错误

python - 在 python 中导入 MySQLdb 时出错

mysql - 无法创建与数据库的连接 (ColdFusion)

asp.net - 无法访问 IIS 元数据库 ASP.Net