当我尝试使用ruby从MySQL数据库创建CSV文件时,不会创建任何文件,也不会返回错误。这是在Windows 10计算机上。
这是我的代码:
def dump_csv
Dir.mkdir 'C:\temp' unless File.exists? 'C:\temp'
<<-SQL
SELECT *
FROM #{@table}
GROUP BY a, b, c, d
HAVING COUNT(*) < 40
INTO OUTFILE 'C:\\\\temp\\\\temp.csv'
FIELDS TERMINATED BY ','
SQL
end
我知道这不是一个权限错误,因为如果我直接将该语句输入MySQL,它就可以了。有任何想法吗?还是另一种方式呢?
谢谢!
答案 0 :(得分:0)
我只是快速浏览了一下,但可能会为File.exists?
切换Dir.exists?
,因为您正在尝试创建目录并检查是否存在FILE。我会把它更清楚地映射到类似的东西:
def temp_file
temp_directory = 'C:\temp'
Dir.mkdir(temp_directory) unless Dir.exists?(temp_directory)
file = "#{temp_directory}/temporary_csv.csv"
end
File.open(temp_file, 'w') << SQL
答案 1 :(得分:0)
您没有执行SQL。
构造
<<-SQL
...
SQL
只是构造一个以“SQL”作为结束标记的字符串