gpt4 book ai didi

php - SQL导出、MYSQL导入、换行问题

转载 作者:行者123 更新时间:2023-11-29 16:56:52 32 4
gpt4 key购买 nike

我有一个非常大的数据库,其中存储了不同的事件。现在我正在编写一个新程序,我必须将数据从SQL数据库迁移到MYSQL数据库。

因此我必须对不同的字段进行一些修改。例如,将日期和时间字段设置为日期时间字段。因此,我首先计划使用 php 脚本,该脚本适用于其他较小的数据表。但在事件表中,我有大约 200.000 行,这会导致 PHP 处理超时。

所以我决定使用 bash 脚本来使其工作。我仍然是 bash 脚本编写的初学者,我尝试用这个来读取文件:

#!/bin/bash
export IFS=","
filename=events.csv
cat $filename | while read -r id eventkind name oert_dst1 oert_dst2 oert_dst3 eins_dst forces creator createdat editor editat datefromdate datefromtime datetodate datatotime city street oert note referto state owner verband staat verkehr wasser history einsltr;
do echo $id;
done

它按预期工作并读取文件的内容。

但是:

在“注释”字段中,有包含换行符的内容。脚本的结果回显:

"VKA_ID"
134301
134306
Veranstalter: Stadt Fürstenfeldbruck"
134307

带有“Veranstalter...”的行是“note”字段中的内容。如果我在编辑器中打开 csv 文件,也会出现换行符。

对于导出,我使用了 SQL-Developer 中的 GUI,但我没有找到任何函数来避免此换行。

有人有想法吗?

P.S我忘记说了。 PHP 解析正确。我将文件读入数组,也有换行符,但在数组字段内。换行符检测在那里正确工作。遗憾的是我不能使用 PHP 来处理这么大的文件...

最佳答案

But in the events table I have about 200.000 lines, which causes a timeout at handling with PHP.

您可以使用 PHP,只需覆盖 set-time-limit :

set_time_limit(20);

或使用 ini_set :

ini_set('max_execution_time', 300); //300 seconds = 5 minutes

这也可以在循环内完成,以获得“足够的时间”来处理每个记录:

foreach ($rows as $row) {
set_time_limit(2);///allows 2 seconds per row
//process $row
}

关于php - SQL导出、MYSQL导入、换行问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52512119/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com