【发布时间】:2020-04-09 05:46:29
【问题描述】:
可以这么说,我正试图用 1 块石头杀死多只鸟。我正在使用 Windows 命令行 mysql.exe 加载从我正在使用的另一个程序调用的本地 infile,我发现还有 3 个其他表需要更新,它们使用主表中的自动递增 PK。表名是 case_info、缓解和处理。 case_info 中的字段名称为 case_id、client_id、sales_data、expenses_data 和income_data。缓解中的字段名称是 mit_id、client_id 和缓解数据。 处理中的字段名称是 proc_id、client_id 和 processing_data。 我传递给 cli 的命令
mysql.exe -uUSER -pSOMEPASSWORD -hEXAMPLE.COM TABLENAME -e \"load data local infile '" +leads+ "'
into table clients
fields terminated by ','
LINES TERMINATED BY '\r\n'
(first_name,address,city,state,zip,saledate,file_id,last_updated,last_updated_by);"+ chr(34)`
client_id 是 AI,PK,因此我需要在上面列出的 3 个表上运行插入语句,以将文本插入 *_data 字段和 client_id 字段在加载每条记录后执行加载数据本地 infile 时所有 3 个表。我不确定这是否可能,如果不是,有人可以帮助我制作一个查询以一次运行或在加载后运行以从未找到的客户端表中获取 client_id在要更新和插入数据的其他表上?对于从主应用程序开始和更新的每条记录,要加载到其他表中的数据都是相同的。
【问题讨论】:
-
似乎编写脚本来执行此操作将是解决问题的更有效途径。您可以使用哪种编程语言
-
将数据加载到临时表中,并使用标准 sql 填充该临时表中的其他表
-
我知道一点 Python,但对我来说,将类似的东西写到 Python 中需要几周甚至几个月的时间。我安装了 python 和 ruby 来运行脚本。