Подтвердить что ты не робот

Как изменить тип данных столбца для базы данных derby?

Я пытаюсь изменить тип данных для столбца db derby. Текущий столбец цены устанавливается как DECIMAL (5,0). Я хотел бы изменить его на DECIMAL (7,2). Я сделал это:

alter table item alter column price set data type DECIMAL(7,2);

Но это не помогло и показало ошибку:

Error: Only columns of type VARCHAR may have their length altered. 

Могу ли я узнать, как это можно изменить? Спасибо.

4b9b3361

Ответ 1

Вот Derby SQL script для изменения столбца MY_TABLE.MY_COLUMN из BLOB (255) в BLOB (2147483647):

ALTER TABLE MY_TABLE ADD COLUMN NEW_COLUMN BLOB(2147483647);
UPDATE MY_TABLE SET NEW_COLUMN=MY_COLUMN;
ALTER TABLE MY_TABLE DROP COLUMN MY_COLUMN;
RENAME COLUMN MY_TABLE.NEW_COLUMN TO MY_COLUMN;

Ответ 2

Вот несколько более сложный способ изменить тип данных столбца следующим образом:

  • Добавьте новый столбец желаемого типа данных
  • Проблема "update... set new-column = old-column для копирования данных из старого столбца в новый столбец
  • удалить старый столбец
  • Переименуйте новый столбец, чтобы иметь имя старого столбца.

Немного больше шагов, но в итоге эффект будет таким же.

Если у вас возникли проблемы с разработкой точных данных SQL для этого, сообщите нам, и мы поможем.

Ответ 3

Я думаю, вы можете сделать вот так:

ALTER TABLE SCHEMA.TABLE ALTER "COLUMN-NAME" SET DATA TYPE VARCHAR(255);

(column-Name SET DATA TYPE VARCHAR(integer)) для строки Datatype String в качестве примера...

Ответ 4

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

ALTER TABLE [table] ALTER COLUMN [column] SET DATA TYPE [type];

Или в Rails, просто используйте:

change_column :table_name, :column_name, :integer

Ответ 5

Posgtes Решение:

ALTER TABLE price_table ALTER price_column TYPE decimal (7,2)