【发布时间】:2015-08-14 12:59:08
【问题描述】:
我正在使用 mysql 作为 php 应用程序的数据库。
我必须解析一个 csv 表,并且只有在更新旧记录时才将数据插入数据库。
一种方法是使用我在 csv 中的 ID 从数据库中获取记录,然后检查值,如果有差异则添加一条新记录,但是因为我有数百 MB 的数据,所以我无法返回从数据库中来回,有没有办法在 sql 中完全做到这一点?
Id 不是唯一的,必须插入的新记录将使用相同的 id。
例如以下是当前记录
| 1001 | M 丹麦语 |新加坡 |
国家更改为美国,表格将有如下两行
| 1001 | M 丹麦语 |新加坡 |
| 1001 | M 丹麦语 |美国 |
【问题讨论】:
-
向我们展示您所做的事情。表结构、数据结构……id是唯一的吗?如果csv id表示dub中具有相同id的记录已更新,插入的新行的id是什么?
-
@rjdown 这更新了相同的记录,我不必更改它。我必须添加一个新的。
-
MySQL 没有
instead of触发器,所以我建议您以编程方式解决它,使用 PHP 函数或 MySQL 存储过程。 -
@LelioFaieta 请查看编辑
标签: php mysql sql database csv