首页 > 解决方案 > 将 Cloud SQL 中的数据导入/导出到 CSV 文件

问题描述

在 Cloud SQL 上,使用 MySQL 引擎,如何替换功能 LOAD DATA INFILE ... REPLACE?

我们正在使用 App Engine 和 Cloud SQL 将我们的网络平台迁移到 Google Cloud。

我们使用 IGNORE 或 REPLACE 模式的 LOAD DATA INFILE 将 CSV 文件导入我们的表中。

由于 Cloud SQL 不支持指令 LOAD DATA INFILE,我们如何设法替换它?

我曾尝试使用 gcloud sql import csv 和 Cloud SQL API,但似乎不存在 IGNORE 或 REPLACE 重复数据的选项。

举个例子,这里是导入数据的表:

C1 | C2 | C3 | C4
-----------------
1  | 2  | 3  | A |
4  | 5  | 6  | B |
7  | 8  | 9  | C |

在这张表上,C1+C2+C3 列有一个唯一索引

现在我需要导入一个包含以下内容的 CSV 文件:

1,2,3,AA

如果我使用带有选项 REPLACE 的 LOAD DATA INFILE,导入后的表将如下所示:

C1 | C2 | C3 | C4
-----------------
1  | 2  | 3  | AA |
4  | 5  | 6  | B  |
7  | 8  | 9  | C  |

因此,我想使用 gcloud sql import csv 或 Cloud SQL API 在 Cloud SQL 上获得相同的行为。

我们需要使用 PHP 以编程方式执行此操作。

有可能还是有另一种可能?

谢谢

标签: phpmysqlgoogle-cloud-platformgoogle-cloud-sqlimport-csv

解决方案


App Engine 支持 LOAD DATA LOCAL INFILE。

这个问题的答案在这些链接中:

通过 CSV 将数据导入 Google Cloud SQL

Google Cloud SQL:LOAD DATA INFILE 的替代方案


推荐阅读