Как добавить значение по умолчанию для обновления в postgresql? - PullRequest
0 голосов
/ 03 января 2019

У меня есть логический столбец, в который я добавил значение по умолчанию false.Насколько я понимаю, значение по умолчанию вступит в силу, когда я добавлю новые строки в таблицу.Тем не менее, я хотел бы, чтобы значение по умолчанию false, когда строки также обновляются.Это возможно?

Например:

ALTER TABLE mytable ALTER COLUMN mycolumn SET DEFAULT false;

-- In below query the mycolumn should default to false 
update mytable set somecolumn = 'somevalue' 
where somecolumn = 'anothervalue'

-- In below query mycolumn should be true since the value is specified
update mytable set somecolumn = 'somevalue' mycolumn = true 
where somecolumn = 'anothervalue'

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Вы можете создать триггер следующим образом:

CREATE FUNCTION mytriggerfunction()
RETURNS TRIGGER AS '                                        
BEGIN
  IF NEW.mycolumn IS NULL OR NEW.mycolumn='''' THEN
    NEW.mycolumn := ''somedefaultvalue'';
  END IF;
  RETURN NEW;
END' LANGUAGE 'plpgsql';

CREATE TRIGGER mytrigger
BEFORE UPDATE ON mytable
FOR EACH ROW
EXECUTE PROCEDURE mytriggerfunction();
0 голосов
/ 03 января 2019

Это возможно. Но только если вы добавите триггер. В операторе create table нет специального предложения для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...