У меня есть таблица SMTP
(упрощенный)Alter таблицы путем добавления нового столбца, значение которого зависит от другого столбца
ИСХОДНЫЙ ЭТАП
| Id | Server | ConnectionRequired | --------------------------------------------- | 0 | smtp.tea.com | '1' | | 1 | smtp.juice.com | '0' | | 2 | smtp.coffee.com | NULL | | 3 | smtp.milk.org | '1' |
ConnectionRequired
является CHAR(1)
Я пытаемся добавить:
ConnectionType
тип е INT
начальное значение которого зависит от ConnectionRequired
:
'1' becomes 1 otherwise it becomes 0
СРЕДНИЙ ЭТАП
| Id | Server | ConnectionRequired | ConnectionType | -------------------------------------------------------------- | 0 | smtp.tea.com | '1' | 1 | | 1 | smtp.juice.com | '0' | 0 | | 2 | smtp.coffee.com | NULL | 0 | | 3 | smtp.milk.org | '1' | 1 |
ТОГДА Я хочу DROP
ConnectionRequired
ЗАКАНЧИВАЮЩИЙСЯ ЭТАП
| Id | Server | ConnectionType | ----------------------------------------| | 0 | smtp.tea.com | 1 | | 1 | smtp.juice.com | 0 | | 2 | smtp.coffee.com | 0 | | 3 | smtp.milk.org | 1 |
То, что я до сих пор:
ALTER TABLE SMTP ADD ConnectionType INT NOT NULL
MIDDLE STAGE.... HAPPENS HERE
ALTER TABLE SMTP DROP COLUMN ConnectionRequired
так что вам просто нужно «вычисление» на некоторое время, но удалить «исходный столбец» после вычисления? –
Используете ли вы SQL Server или Oracle? –
@AaronBertrand и – gtgaxiola