Здравствуйте.
Встретилась рабочая задача написания сервлета.
Требуется добавить данные в две таблицы:
Структура таблиц следующая:
таблица Inkart: id_inkart (является первичным ключом), name
таблица Inoper: inoper_Num , telephone, email
Связаны id_inkart и inoper_Num.
Написана веб форма добавления записей.
Вопрос как за одну команду sql добавить данные в базу в обе таблицы по id.
Nikopol
1 уровень
Как добавить данные в две связанные таблицы одним запросом sql
Обсуждается
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Стас Пасинков Software Developer в Zipy Master
12 июня 2018, 09:23
поскольку команда insert имеет такой синтаксис, что принимает только одну таблицу для вставки за раз (как минимум в тех СУБД, с которыми я работал) - то вставить одной коммандой сразу в обе таблицы - нет возможности.
обычно используются просто два запроса. сначала вставляешь в таблицу Inkart (и получаешь айдишник для вставки во вторую таблицу), а потом в таблицу Inoper. ну или где там у тебя внешний ключ указан))
если же хочешь, чтобы данные "не побились" (например, когда в первую таблицу вставить удалось, а при вставке во вторую - произошла ошибка, тогда в первой таблице будет висеть "мертвая" запись. еще хуже - с каскадным изменением/удалением существующих записей) - используй транзакции
0
Ярослав Java Developer Master
11 июня 2018, 22:05
Названия таблиц и полей оставляют желать лучшего. Но, если я правильно понял, то первая таблица - это человек, а вторая - его контактные данные. Если так, то одной командной вряд ли удастся вставить сразу в две таблицы значения. Сначала нужно вставить контактную информацию, а потом в первой таблице создать внешний ключ ссылающийся на таблицу с контактными данными.
0