Синтаксическая ошибка на 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 ответ

Решение

Это слишком долго для комментария. Вам нужно:

  1. Добавьте новый временный столбец с правильным типом.
  2. Обновите временный столбец старым значением.
  3. Оставьте старый столбец.
  4. Добавьте новый столбец с правильным именем и типом.
  5. Обновите новый столбец значением из временного столбца.
  6. Оставьте временный столбец.

Немного громоздко

Другие вопросы по тегам