@medovuk

Как вставить ключевое поле из другой таблицы при вставке данных в другую таблицу?

Есть две таблицы: А(id, name, ....), B(id, ....). Таблица А является как бы источником информации (допустим товары с их характеристиками), таблица В сдержит доп. информацию, поле В.id - один из составных ключей. Как вставляя данные в таблицу В(1, ....), брать это id из таблицы А. Т.е А(1, "книги", ...), insert into B(id, ....) values (1, ....,)? Сделал так :
insert into В ( id, ...) values ((select id from А where Name="книги"), ....));
Если способ лучше? Данные берутся из файла в обе таблички, в А добавляется если такой записи нет, а в В всегда.
  • Вопрос задан
  • 223 просмотра
Пригласить эксперта
Ответы на вопрос 1
@x_shader
Oracle & Coffee
Раскрытие первичного ключа (ID) по альтернативному (Name) для случая загрузки данных примерно так и происходит, как вы делаете. Реализация может отличаться, но суть та же.
Предусмотрите еще некую таблицу разбора ошибок, куда будут скидываться строки, для которых совпадение по вашему "Name" не было найдено, или было найдено больше одной строки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы