У меня есть таблица 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
У меня была похожая проблема при попытке импортировать 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 приведет к вставке следующего в рабочую среду:
[/ NOEDIT]
INSERT INTO PARTY
(Name
, Currency
) ЦЕННОСТИ (Party_group
, GBP
);
ВСТАВИТЬ В PARTY
(Name
, Currency
) ЦЕННОСТИ (Company
, USD
);
ВСТАВИТЬ В PARTY
(Name
, Currency
) ЦЕННОСТИ (Person
, INR
);
Пока pasty_id установлен на автоинкремент, он должен обновляться до максимального значения +1
Других решений пока нет …