Нужно вставить таблицу цен в MySQL - PullRequest
0 голосов
/ 08 мая 2018

У меня есть таблица, и мне нужно добавить новые записи в строку базы данных mysql. Теперь я делаю это вручную для каждой записи, но в каждой таблице 600 записей.

У меня есть эти столбцы в строке, где он должен быть инстерт, под названием "curtain_entry_item" база данных:

группа> Это запись, которая связывает таблицу цен, например, это таблица цен 31.

ширина> это может быть 20 см 30 см и т. Д. До 240

длина> это может быть 20 см 30 см и т. Д. До 300

цена> это может быть 30

Так как я могу выполнить эту таблицу одним действием в базе данных mysql.

Пример таблицы приведен на этой ссылке

Большое спасибо! Wouter

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Звучит так, будто вы ищете способ преобразовать матрицу электронных таблиц в набор команд SQL, которые загружают таблицу базы данных.

Если это так, это больше вопрос анализа ввода, чем вопрос базы данных.

Общий подход будет следующим:

for each row
    for each column
        issue an INSERT statement using the row, column and intersection cell

Вот программа на Perl, которая сделает это, например, с помощью первой вкладки предоставленной вами электронной таблицы (после экспорта в CSV):

#!/usr/bin/perl

# read in the header line and trim off whitespce
$header = <STDIN>;
$header =~ s/^\s+|\s+$//g;

# make the header line into an array of 'width' values
@widths = split(/,/, $header);

# loop through the remaining (data) rows
while ($data = <STDIN>) {
    # trim whitespace
    $data =~ s/^\s+|\s+$//g;

    # split the row into data elements, and use the 1st one as the 'length'
    @prices = split(/,/, $data);
    $length = $prices[0];

    # loop through the remaining data cells
    for ($i = 1; $i < 23; $i++) {
        # print out an appropriate INSERT statement
        printf(STDOUT "INSERT INTO curtain_price_table (group, width, length, price) VALUES (31, %d, %d, %d);\n", $widths[$i], $length, $prices[$i] . "\n");
    }
}

Perl не единственный вариант здесь; любой язык сценариев может выполнить эту задачу довольно легко. И, возможно, вам придется адаптировать это, чтобы сделать его универсальным решением для ваших различных входных файлов и таблиц базы данных. Но это должно предоставить вам достаточно информации, чтобы удовлетворить ваши потребности.

0 голосов
/ 08 мая 2018

Поскольку нет точных деталей вашей структуры базы данных, невозможно дать вам рабочее решение.

Я предполагаю, что вам нужен оператор INSERT INTO SELECT, который копирует данные из одной таблицы и вставляет их в другую таблицу. Вы можете найти более подробную информацию от w3scools по адресу:

https://www.w3schools.com/sql/sql_insert_into_select.asp

...