php - 将 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 以编程方式执行此操作。
有可能还是有另一种可能?
谢谢
解决方案
App Engine 支持 LOAD DATA LOCAL INFILE。
这个问题的答案在这些链接中:
推荐阅读
- c++ - 了解模板函数声明
- python - OSMnx 无向图和 (u, v, k) 顺序
- raspberry-pi - -bash:raspistill:找不到命令
- sql - 返回查询的函数
- java - 使用 Spring Security 的 SAML 2.0 在本地选择身份提供者
- php - 在数据库中使用默认值插入
- r - 使用合并将 2 列合并为 1 的问题
- python - 如何在python中从列表(可能有奇数个元素)中打印两个对齐的文本列?
- migration - 从aidl迁移到pbl4.0。发布后,发布版本码后支付失败
- terraform - Terraform:通过模块变量设置 AWS 资源的提供者值