|
Процедура "Есть ли такое уже"
|
|||
---|---|---|---|
#18+
Есть таблица: FIO id (int autoincrement ключевое поле) naim (varchar(100)) del (int(1)) - индикатор удаления (0 - НЕ удалён, 1 - удалён) Проблема: передать в процедуру ФИО человека и назад получить id и, если "удалён" - восстановить. Состояний - три: "нет", "есть и del = 0" и "есть, но del =1" Т.е. - Код: plsql 1.
Результат: id записи, но если del = 1, тогда del = 0 Есть ли возможность организации такой процедуры одной строкой? Если нет - то вообще как? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2019, 08:40 |
|
Процедура "Есть ли такое уже"
|
|||
---|---|---|---|
#18+
Не сильно понятно. Допустим, выполняем Код: sql 1.
Вопрос 1. Что передаётся в rez? Вопрос 2. Что происходит (что выводится? что возвращается в rez? какие ещё действия выполняются?) в вариантах: Вариант 1. 'иванов иван иванович' - отсутствует в таблице. Вариант 2. 'иванов иван иванович' - имеется в таблице, и его del=0. Вариант 2. 'иванов иван иванович' - имеется в таблице, и его del=1. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2019, 09:04 |
|
Процедура "Есть ли такое уже"
|
|||
---|---|---|---|
#18+
Akina, rez - это возвращаемый id записи. Передаем процедуре "Иванов Иван Иванович". Если в таблице FIO такой записи нет - тогда добавляем и возвращаем id записи. Если в таблице FIO такая запись есть, но у неё del = 1 (т.е. "флажок" удаления поднят) - тогда меняем на del = 0 и возвращаем id записи. Если в таблице FIO такая запись есть и у неё del = 0 (т.е. "флажок" удаления опущен) - тогда просто возвращаем id записи. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2019, 09:20 |
|
Процедура "Есть ли такое уже"
|
|||
---|---|---|---|
#18+
Ну будет нечто вроде Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Само собой предполагается наличие уникального индекса по FIO (naim) . ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2019, 09:57 |
|
|
start [/forum/topic.php?fid=47&fpage=28&tid=1828836]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 310ms |
total: | 471ms |
0 / 0 |