Использование rdb $ get_context в качестве значения по умолчанию для столбца - PullRequest
1 голос
/ 05 сентября 2010

В базе данных Firebird мне нужно создать DOMAIN со значением по умолчанию, взятым из переменной контекста.

Это должно быть что-то вроде

CREATE DOMAIN USER_ID AS INTEGER 
  DEFAULT RDB$GET_CONTEXT('USER_SESSION','UID') NOT NULL;

Когда я выполняю это, я получаю следующую ошибку

Неверный токен.
Динамическая ошибка SQL.
Код ошибки SQL = -104.
Токен неизвестен - строка 2, столбец 13.
RDB $ GET_CONTEXT.

Как это можно сделать, может быть, есть другой способ, чем предложение DEFAULT?

1 Ответ

2 голосов
/ 05 сентября 2010

Просто создайте триггер BEFORE INSERT:

CREATE TRIGGER your_trigger_name FOR your_table
  BEFORE INSERT
  POSITION 0
AS
BEGIN
  IF (NEW.your_field IS NULL) THEN
    NEW.your_field = RDB$GET_CONTEXT('USER_SESSION','UID'); 
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...