Как изменить тип данных столбца для базы данных 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.
Могу ли я узнать, как это можно изменить? Спасибо.
Ответы
Ответ 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)