![]() |
Модераторы: Akella |
![]() ![]() ![]() |
|
opx |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 3.10.2008 Репутация: нет Всего: нет |
Я наверное что-то не понимаю, но все же
Есть 2 таблицы:
и
Т. е. записи добавляются, id генерируются. Одно непонятно. Есть у меня информация о фирме: ООО "Форум", г. Н. Новгород г. Н. Новгород отсутствует в таблице CITY Если я вставлю запись в CITY то мне нужно ее ID передать в Firms да так, чтобы другой юзер в это время добавлял бы записи и получал свои ID. Как бы это сделать? Если после метода Post вытаскивать запросом:
То я могу напороться на ID другого пользователя. Поправьте, если я ошибаюсь Это сообщение отредактировал(а) opx - 28.5.2009, 13:10 |
||||||
|
|||||||
Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 7 Всего: 54 |
Так? При этом рекомендую наложить на CITY.NAME ограничение UNIQUE, что б два Н.Новгорода не появилось ![]() Не давно (за последние две недели) на ветке форума "Базы данных" была тема про правильность написаня названий районов и городов, БД там какая то про гостиницы была... Так вот там было озвучено очень интересное (на мой взгляд) предложение реализации того, что бы корректно обробатывать ситуации, когда разные пользователи по разному называют города (например. Н.Новгород, Нов. Новгород, Новый Новгород), а БД при этом корректно относит их к одному (эталонному названию: Новый Новгород). Это сообщение отредактировал(а) Gluttton - 28.5.2009, 14:10 -------------------- Слава Україні! |
|||
|
||||
opx |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 3.10.2008 Репутация: нет Всего: нет |
Так то оно так... но
Добавлено через 4 минуты и 20 секунд Нет. Этого города еще нет в списке. Нужно добавить город и Фирму с ID этого города и чтобы не пересечься с другим пользователем |
|||
|
||||
Gluttton |
|
||||||||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 7 Всего: 54 |
И непременно одним запросом? 1. Выполняем запрос:
2. Если запрос возвращает NULL, то:
3. Не зависимо от результата п.п. 1, 2:
А как за один запрос выполнить это всё я не знаю. Возможно в этом может помочь EXCEPTION + TRIGGER + PROCEDURE. -------------------- Слава Україні! |
||||||||
|
|||||||||
Deniz |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
Если есть уникальный индекс в City по Name, то метод Gluttton, тоже подойдет, он просто забыл дописать вставку в City. -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
opx |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 3.10.2008 Репутация: нет Всего: нет |
Так и думал, что я туплю. Спасибо, что подсказали
|
|||
|
||||
Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: нет Всего: 51 |
Не напорешься, при условии что NEWID гарантированно больше самого большого ID в таблице. GEN_ID выполняется вне транзакций. |
|||
|
||||
Deniz |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Interbase" | |
|
Обязательно указание: 1. Версию InterBase (Firebird, Yaffil) 2. Способа доступа (ADO, BDE, IBX и т.д.)
Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Firebird, Interbase | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |