|
|
|
ошибка в триггере
|
|||
|---|---|---|---|
|
#18+
ALTER TRIGGER PERSON_BI0 ACTIVE AFTER INSERT POSITION 0 AS begin if (old.person_id = 0) then begin new.person_id = gen_id(person_generator,1); end /* Trigger text */ end ERROR Column does not belong to referenced table. Dynamic SQL Error. SQL error code = -206. Column unknown. OLD.PERSON_ID. в чем ошибка?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 15:43:17 |
|
||
|
ошибка в триггере
|
|||
|---|---|---|---|
|
#18+
в BEFORE_INSERT не существует OLD, есть только NEW. В твоем случае: if (new.person_id IS NULL) then new.person_id = gen_id(person_generator,1); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 15:50:50 |
|
||
|
ошибка в триггере
|
|||
|---|---|---|---|
|
#18+
спасибо, но суть не в том. я хотел чтоби при inserte в таблицу person_id=0 генерился новый id а при инсерте конкретного person_id не генерился, соответсвенно. интересно было бы увидеть предложения по решения именно этой задачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 16:01:52 |
|
||
|
ошибка в триггере
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. кажется, так надо чтобы сгенерился, не упоминаете в инсерт (или устанавливаете в null) чтобы вставился, упоминаете ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 16:15:33 |
|
||
|
ошибка в триггере
|
|||
|---|---|---|---|
|
#18+
спасибо, но я забыл сказать, что person_id являетс primary key и упминается еще во многих других таблицах, то есть NULL-ом при инсерте быть не может(по крайней мере я так понимаю) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 16:25:38 |
|
||
|
ошибка в триггере
|
|||
|---|---|---|---|
|
#18+
вы просто попробуйте. перед (before, англ.) инсертом - может, соответсвенно триггер должен быть BEFORE INSERT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 17:11:34 |
|
||
|
ошибка в триггере
|
|||
|---|---|---|---|
|
#18+
странно, но в этот раз: Field PERSON_ID should have a value ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 17:37:18 |
|
||
|
ошибка в триггере
|
|||
|---|---|---|---|
|
#18+
Какая версия IB (FB) ? Должно работать - все так делаем :) PS Это в MS SQL не будет работать - он почему-то сперва на NULL проверяет, а потом триггер запускает (ну что с него возьмёшь) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 18:34:45 |
|
||
|
ошибка в триггере
|
|||
|---|---|---|---|
|
#18+
авторЭто в MS SQL не будет работать - он почему-то сперва на NULL проверяет Насколько я помню у MS нет триггеров BEFORE - они все AFTER! Потому и не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 18:41:13 |
|
||
|
ошибка в триггере
|
|||
|---|---|---|---|
|
#18+
BEFORE конечно нету - я имел ввиду INSTEAD триггера. Они хоть и криво, но всё-таки могут выполнять роль BEFORE триггеров. Например следить за констрейнтами из INSTEAD триггера можно, а вот за NULL - увы! Это не Interbase :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 18:47:34 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32518736&tid=1578649]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
191ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 490ms |

| 0 / 0 |
