如何更改derby数据库的列数据类型?

jl.*_*jl. 18 sql database derby

我正在尝试更改derby db列的数据类型.当前价格列设置为DECIMAL(5,0).我想把它改成DECIMAL(7,2).我这样做了:

alter table item alter column price set data type DECIMAL(7,2);
Run Code Online (Sandbox Code Playgroud)

但它没有用,并显示错误:

Error: Only columns of type VARCHAR may have their length altered. 
Run Code Online (Sandbox Code Playgroud)

我可以知道如何改变它吗?谢谢.

uı6*_*uɐp 25

以下是将列MY_TABLE.MY_COLUMN从BLOB(255)更改为BLOB(2147483647)的Derby SQL脚本:

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;
Run Code Online (Sandbox Code Playgroud)


小智 6

我认为您可以这样做:

ALTER TABLE SCHEMA.TABLE ALTER "COLUMN-NAME" SET DATA TYPE VARCHAR(255);
Run Code Online (Sandbox Code Playgroud)

(column-Name SET DATA TYPE VARCHAR(integer)) 以数据类型字符串为例...

  • 这对于增加 varchar 的列大小非常有效,并且比公认的解决方案简单得多。 (2认同)