我目前正在构建一个 MySQL 数据库。数据库正在存储由另一个组织提供的数据,我们收到的文件的格式,容我们说,有些不一致。
我编写了一个函数,该函数根据一些简单的规则评估文件并返回一条消息,说明“文件正常”或硬编码错误消息列表之一。我想使用这个功能的方式是这样说:
if check_10m_file() = 'file ok' then
load data infile '\\\\server\\filepath\file.csv'
fields terminated by ','
...(etc)
我的问题是if..then..else
控制结构似乎不允许在存储过程之外使用,并且在存储过程load data infile
中也不允许使用该命令。
我试图通过将load data infile
语句构建为准备好的语句来欺骗我的方式,但随后出现错误
“准备好的语句协议尚不支持此命令”
所以我的问题是,有谁知道只有在满足条件时才能运行加载数据语句的方法?理想情况下,我希望将其放入存储过程中,但如果我可以将代码保存为稍后运行的脚本,那将是可以接受的。