Вставка базы данных в отношениях многих ко многим. Тупой вопрос - PullRequest
0 голосов
/ 19 марта 2011

Проблема Hy .my заключается в том, что у меня есть отношение многие ко многим в базу данных, которая сопоставляется с таблицей между двумя таблицами. Просто скажем, что у меня есть таблица Employees and Services с отношением «многие ко многим», и таблица между ними XXX. Теперь, если я хочу добавить сотрудника, а также связать его со службой, как мне это сделать, если первичный ключ Сотрудников находится на автоинкременте?
Я должен был бы вставить сотрудника .. затем выбрать его, чтобы узнать его первичный ключевой идентификатор, а затем вставить в таблицу XXX, чтобы иметь отношение к услуге. Теперь мой вопрос: есть ли другой способ? Извините, если это уже было подтверждено, но я просто не знал, как искать ответ. Перепишите это мне в java-приложении. ТНХ

мой пример:
create table employees(<br> id_employee primary key auto_increment<br> )
create table services(<br> id_service primary key auto_increment<br> )

и средний
create table xxx(<br> id_employee primary key foreign key references employees(id_employee)<br> id_service primary key foreign key references services( id_service)<br> )

извините за спешку ... но я надеюсь, что вы получите ideea.Ps я использую MySql

Ответы [ 2 ]

1 голос
/ 19 марта 2011

Вам не нужно выбирать, вы можете получить lastInsertedId из вашей базы данных. В зависимости от того, какую базу данных вы используете, это будет что-то другое.

Для mysql вы можете прочитать об этом здесь: http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html

Итак

  • вставить
  • получить последний вставленный идентификатор, не выбрав, а просто запросив базу данных (поскольку она вернет последний вставленный идентификатор по вашему соединению, а не общее, это должно быть поточно-ориентированным).
  • повтор:)
0 голосов
/ 19 марта 2011

Я просто хочу добавить свои 5 центов к ответу Нанн. Есть различные способы , как получить последний вставленный идентификатор в Java, если вы используете Connector / J:

  • с использованием Statement.getGeneratedKeys (),
  • с помощью SELECT LAST_INSERT_ID (),
  • с использованием обновляемых наборов результатов.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...