Я пытаюсь добавить столбец в таблицу firebird. Столбец должен иметь значение по умолчанию 1, но первоначально для уже существующих строк значение должно быть установлено равным 0. И это должно произойти в одной транзакции.Firebird добавить столбец со значением по умолчанию, но другое значение
Я попытался
ALTER TABLE MYTABLE ADD MYCOLUMN SMALLINT DEFAULT 1 NOT NULL;
UPDATE MYTABLE SET MYCOLUMN = 0;
но это не разрешено в одной транзакции, потому что обновление не будет видеть новый столбец. Я также попытался:
ALTER TABLE MYTABLE ADD MYCOLUMN SMALLINT DEFAULT 0 NOT NULL;
ALTER TABLE MYTABLE ALTER COLUMN MYCOLUMN SET DEFAULT 1 NOT NULL;
Надеясь, что колонка будет 0 после этого, но это будет 1.
Другие варианты, чтобы получить то, что я хочу в одной транзакции?