Синтаксическая ошибка на ALTER COLUMN - Ingres
У меня есть сценарий SQL, который я запускаю через PUTTY, чтобы обновить базу данных ingres
Имеет ошибки со следующим запросом (который отлично работает в Squirell SQL Client)
ALTER TABLE address
ALTER COLUMN address2 VARCHAR(100); \p\g
Где я пытаюсь изменить адрес 2 столбца, чтобы учесть больше символов.
Отображает
E_US0F0A строка 1, синтаксическая ошибка в "ALTER COLUMN". Правильный синтаксис:
ALTER TABLE имя таблицы ADD [CONSTRAINT имя_ограничения] ограничение_класса | DROP CONSTRAINT ограничение_имя RESTRICT | КАСКАД | ДОБАВИТЬ [КОЛОНКА] формат имени столбца [клаузула по умолчанию] [клаузула нуля] [ограничение_столбца] | DROP [COLUMN] column_name RESTRICT | CASCADE
Кажется, ingres позволяет только добавить или удалить.
1 ответ
Решение
Это слишком долго для комментария. Вам нужно:
- Добавьте новый временный столбец с правильным типом.
- Обновите временный столбец старым значением.
- Оставьте старый столбец.
- Добавьте новый столбец с правильным именем и типом.
- Обновите новый столбец значением из временного столбца.
- Оставьте временный столбец.
Немного громоздко