У меня есть 80 CSV-файлов в каталоге. Мне нужно создать базу данных, где каждая таблица будет табличным представлением соответствующего CSV. И все это нужно сделать в контейнере MySQL docker.
Обычно я добавляю /external/directory:/internal/directory
после команды run
, но в случае контейнера mysql/mysql-server:latest
с использованием
docker run --name=sql -d -v /home/puku/Data/TH_Study/csv_data:/usr mysql/mysql-server
дает мне
standard_init_linux.go:211: exec user process caused "no such file or directory"
в docker logs sql
Мой план заключается в том, чтобы файлы CSV в каталоге \usr
создали базу данных с именем TH_Study_Data и l oop над каждым CSV-файлом и создайте таблицу с соответствующим именем и содержимым CSV-файла. Для этого я подумал об использовании чего-то вроде -
CREATE DATABASE TH_Study_Data;
USE TH_Study_Data;
CREATE TABLE #tmp(csvFileName VARCHAR(100));
INSERT INTO #tmp
EXEC xp_cmdshell 'dir /B /usr';
declare @fileName varchar(100)
While (Select Count(*) From #tmp where csvFileName is not null) > 0
Begin
CREATE TABLE csvFileName (
ID VARCHAR(50) NOT NULL,
Profiling_Technique VARCHAR(255) NOT NULL,
Dataset_ID VARCHAR(255) NOT NULL,
No_of_Samples INT NOT NULL,
Type_of_Samples VARCHAR(200) NOT NULL,
TH_TEST_ID VARCHAR(200) NOT NULL,
PRIMARY KEY (ID)
);
Delete from #tmp Where csvFileName = @FileName
End
DROP TABLE #tmp
Но я понятия не имею, как это сделать в docker. Пожалуйста, помогите.