Импорт / экспорт данных из Cloud SQL из / в файлы CSV - PullRequest
0 голосов
/ 16 мая 2019

В Cloud SQL, с движком MySQL, как я могу заменить функциональность LOAD DATA INFILE ... REPLACE?

Мы переносим нашу веб-платформу в Google Cloud с помощью App Engine и Cloud SQL.

Мы используем LOAD DATA INFILE с режимом IGNORE или REPLACE, чтобы импортировать файлы CSV в наши таблицы.

Поскольку инструкция LOAD DATA INFILE не поддерживается в Cloud SQL, как мы можем ее заменить?

Я пытался использовать 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

Если бы я использовал LOAD DATA INFILE с опцией REPLACE, таблица после импорта была бы такой:

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

Итак, я хотел бы получить то же поведение на Cloud SQL либо с gcloud sql import csv, либо с Cloud SQL API.

Нам нужно сделать это программно с PHP.

Возможно или есть другая возможность?

Спасибо

1 Ответ

0 голосов
/ 16 мая 2019

LOAD DATA LOCAL INFILE поддерживается App Engine.

Ответ на этот вопрос находится по следующим ссылкам:

Импорт данных в Google Cloud SQL через CSV

Google Cloud SQL: альтернатива LOAD DATA INFILE

...