Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Триггеры
|
|||
|---|---|---|---|
|
#18+
Народ, помогите плиз. Есть таблица t_klient со cтолбцами id_klienta, id_passport и fio_klienta . Суть триггера в том что при добавлении нового клиента вводится id_passport, а если такой id уже есть в таблице, триггер должен сам вводить ФИО. Вот что у меня вышло но db2 выдает ошибку WHEN (exists (select * from t_klient where new_row.id_passport=t_klient.id_passport)) BEGIN ATOMIC update db2admin.t_klient set fio_klienta=(select t_klient.fio_klienta from db2admin.t_klient where new_row.id_passport=t_klient.id_passport) where new_row.id_passport=t_klient.id_passport ; END Ошибка в триггерном операторе SQL в триггерной процедуре "DB2ADMIN.TR_ADD_KLIENT". Код ошибки SQLCODE "-811", состояние SQLSTATE "21000", элементы сообщения "". SQLSTATE=09000 Помогите пожалуйста! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2011, 01:23 |
|
||
|
Триггеры
|
|||
|---|---|---|---|
|
#18+
new_era, Прежде всего, обновлять ту же самую таблицу в триггере нельзя. Нужно использовать алиасы NEW и OLD. Код: plaintext Смотрите в документации SQLSTATE, указанный в ошибке - это должно навести на мысль, что тут еще неправильно. Модератор: Тема перенесена из форума "MySQL". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2011, 07:44 |
|
||
|
Триггеры
|
|||
|---|---|---|---|
|
#18+
new_era, >db2 "? sql811" SQL0811N The result of a scalar fullselect, SELECT INTO statement, or VALUES INTO statement is more than one row. Explanation: One of the following caused the error: * Execution of an embedded SELECT INTO or VALUES INTO statement resulted in a result table of more than one row. * Execution of a scalar fullselect resulted in a result table of more than one row. Federated system users: this situation can be detected by federated server or by the data source. The statement cannot be processed. User response: Ensure that the statement contains the proper condition specifications. If it does, there may be a data problem that is causing more than one row to be returned when only one is expected. Во всяком случае на вашем триггере и этих данных вы получите такую ошибку, вставляя строку с id_klienta=3. id_klientaid_passportfio_klienta11Иванов21Иванов31___ Не обращая внимание на вашу довольно странную систему учёта клиентов (получается, что вы храните более чем одного клиента с одинаковым номером паспорта), решение могло бы выглядеть так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2011, 11:19 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=37543822&tid=1602002]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
74ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 285ms |
| total: | 441ms |

| 0 / 0 |
