Нужно l oop через директорию externa, используя mysql in docker - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть 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. Пожалуйста, помогите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...