загрузить данные в Db через Excel

У меня есть таблица PARTY в БД MYSQL workbench, столбец party_id является первичным ключом, не пустым и уникальным

Party_id  Name     Currency
10080     Person    INR
10081     Party_GP  USD

У меня есть следующие данные в Excel, которые я собираюсь загрузить через макросы (здесь party_id будет нулевым)

Party_id   Name         Currency
Party_group  GBP
Company      USD
Person       INR

у меня есть код макроса для загрузки данных Excel в MYSQL DB. Так как здесь party_id имеет значение null, я не могу вставить запись в БД. Мне нужен код макроса, чтобы получить max (идентификатор партии) +1 из таблицы PARTY из БД, и он должен получать обновления в данных Excel party_id во время загрузки в Excel.

После загрузки результат в таблице БД должен выглядеть следующим образом

Party_id   Name         Currency
10080     Person        INR
10081     Party_GP      USD
10082      Party_group  GBP
10083      Company      USD
10084      Person       INR

1

Решение

У меня была похожая проблема при попытке импортировать CSV в MySQL Workbench. Я обнаружил, что было легче использовать insert into оператор, который был сгенерирован путем объединения команд вокруг ячеек.

В рабочей среде убедитесь, что для вашего первичного ключа задано автоматическое увеличение, а затем я скопирую и вставлю содержимое объединенных ячеек (столбец D в приведенном ниже примере) и выполню запрос.

| Party_id | Имя | Валюта | |
| ---------- | ------------- | ---------- | ------------- -------------------------------------------------- ----------- |
| | Party_group | GBP | = "INSERT INTO` PARTY`, (`Name`,` Currency`) VALUES (`" B2 "`, `" C2 "`); " |
| | Компания | USD | = "INSERT INTO` PARTY`, (`Name`,` Currency`) VALUES (`" B3 "`, `" C3 "`); " |
| | Человек | INR | = "INSERT INTO` PARTY`, (`Name`,` Currency`) VALUES (`" B4 "`, `" C4 "`); " |

Копирование столбца D приведет к вставке следующего в рабочую среду:

INSERT INTO PARTY (Name, Currency) ЦЕННОСТИ (Party_group, GBP);
ВСТАВИТЬ В PARTY (Name, Currency) ЦЕННОСТИ (Company, USD);
ВСТАВИТЬ В PARTY (Name, Currency) ЦЕННОСТИ (Person, INR);
[/ NOEDIT]

Пока pasty_id установлен на автоинкремент, он должен обновляться до максимального значения +1

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]