В настоящее время я использую Go для доступа к моей базе данных. В идеале я хотел бы генерировать.csv на основе имени таблицы и экспортировать данные в эти файлы на основе запроса.
Например, если я запустил:
select t1.*,t2.* from table1 t1
inner join table2 t2 on t2.table_1_id = t1.id
where t1.linking_id = 22
Мне нужен файл.csv, сгенерированный как для таблицы 1, так и для таблицы 2, где будут генерироваться данные из каждой таблицы, а затем экспортировать в эти два сгенерированных файла с теми же именами, что и имена таблиц.
Я знаю в PHP, я могу использовать $fp = fopen(getcwd().'/table1.csv', 'w'); fputcsv($fp, $columns);
$fp = fopen(getcwd().'/table1.csv', 'w'); fputcsv($fp, $columns);
для генерации CSV файлов с именами строк таблицы. Но я не верю, что вам нужно непрерывное дублирование столбцов foreah для генерации отдельных CSV файлов.
Я хотел бы получить некоторые рекомендации по экспорту и генерации данных sql в CSV файлах.
Спасибо!
Моя текущая настройка импорта:
import ( "database/sql" _ "github.com/go-sql-driver/mysql" "github.com/joho/sqltocsv" )
Я могу подключиться к моей базе данных без проблем и запросить мою базу данных при инициализации запроса через rows, _:= db.Query(SELECT * FROM table1 WHERE id = 22)
Я могу написать данные запроса в ранее существующий CSV файл, используя err = sqltocsv.WriteFile("results.csv", rows)
Итерации rows
с помощью цикла для извлечения каждой строки
Используйте encoding/csv
пакетов encoding/csv
для записи CSV файла.