繁体   English   中英

mysql存储过程输出文件

[英]mysql stored procedure outfile

我试图将SP查询结果写入文件nad,得到一个一致的错误代码:1086文件已存在。 尽管事实上文件名必须唯一,因为它包含一个随机的生成编号。 这是我的代码的一部分:

SET fullOutputPath = CONCAT(user,'_',FLOOR(1000+RAND()*9999),'.txt');

SELECT fullOutputPath;
-- write the resultset to the file
SELECT node_concat 
    INTO OUTFILE ",fullOutputPath,"
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY ''
    LINES TERMINATED BY '\n'
  FROM sn_neighbour_tmp;

有任何想法吗 ?

您需要对预准备语句使用13.5 SQL语法

例:

...
SET `fullOutputPath` := CONCAT(USER, '_', FLOOR(1000 + RAND() * 9999), '.txt');
SET @`qry` := CONCAT('SELECT `node_concat` 
                          INTO OUTFILE ', `fullOutputPath`, ' 
                          FIELDS TERMINATED BY \',\' 
                          OPTIONALLY ENCLOSED BY \'\' 
                          LINES TERMINATED BY \'\n\' 
                      FROM `sn_neighbour_tmp`');
PREPARE `stmt` FROM @`qry`;
SET @`qry` := NULL;
EXECUTE `stmt`;
DEALLOCATE PREPARE `stmt`;
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM