![]() |
|
Модераторы: skyboy |
![]()
|
|
| Value |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 2.12.2005 Репутация: нет Всего: нет |
Доборое время суток
Есть вопрос (может не правильно сформулирую, но попробую) : СУБД PostgreSQL Я уже писал, у меня 3 таблицы admins, customers, owners. в каждом из них есть поле is_deleted boolean not null default false и login varchar(32) not null Поле is_deleted подразумевает то, что если оно равно true то этот пользователь стёрт. Но в действительности стерать нельзя, а мне надо сделать чтобы он был неактивен, и при создании нового пользователя при проверке, если такой пользователь был, но у него is_deleted = true, то логин игрорируется и создаётся пользователь с таким же логином. проверка на уникальность
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Так в чем проблема? если запрос where login=v_login and not is_deleted вернет 1 запись - логин занят, 0 записей - свободен (и неважно, нет его вообще или он удален), 2 и более - нарушение целостности БД. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Value |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 2.12.2005 Репутация: нет Всего: нет |
а дело в том что из where login=v_login and not is_deleted
при select sp_check_login ('cust3') (такой пользователь существует и is_deleted = true) выкидывает мой exception, а мне этого не надо В смысле если id_deleted = true, то функция должна просто этот логин игнорировать и не кидать exception'ов |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
А откуда, позвольте узнать, exception? ты же его сам напрограммил...
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| vladimir74 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 241 Регистрация: 28.11.2006 Репутация: нет Всего: 3 |
так у тебя login_name уникальное поле?
ну тогда у тебя никак не получится добавлять два одинаковых значения!! Для этого и существует уникальность. Разве что при удалении добовлять какие то символы, что бы потом имя нового юзера не совпадало с удаленым. Вообще ИМХО или удаляй его, если 100% знаешь что он тебе больше не понадобится, или убери уникальность с поля, и проверяй чтоб небыло повторений ручками уже из программы с условием от Akina... Добавлено через 6 минут и 20 секунд если это поле не проверяет на уникальность, то Akina, опять же все сказал просто замени условие...
Это сообщение отредактировал(а) vladimir74 - 22.10.2008, 13:57 --------------------
* В доме помешанного не говорят о миксере.* На любой Ваш вопрос у меня есть любой мой ответ. |
|||
|
||||
| vladimir74 |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 241 Регистрация: 28.11.2006 Репутация: нет Всего: 3 |
и кстати зачем тебе if v_violation = true then ?
если я правильно помню по
ты выходишь из ф-ции а щначит дальше не проверка не пойдет... проще сделать так..
и еще вопрос зачем тебе бесконечный цикл, и если честно я не помню даст ли return выход из него или тебе надо задать явное условие с выходом exit ..... Это сообщение отредактировал(а) vladimir74 - 22.10.2008, 14:13 --------------------
* В доме помешанного не говорят о миксере.* На любой Ваш вопрос у меня есть любой мой ответ. |
||||
|
|||||
| Value |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 2.12.2005 Репутация: нет Всего: нет |
поле login не unique...
повторяю что при таком коде
и при заведомо введённом логине cust3, где is_deleted = true выкидывает exception
исходя из выше сказанного ф-ия недолжна выкидывать exeption если is_deleted = true |
||||
|
|||||
| Value |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 2.12.2005 Репутация: нет Всего: нет |
Cпасибо всё заработало...
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |