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

发布于 2024-08-24 03:28:05 字数 310 浏览 6 评论 0原文

我正在尝试更改 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. 

我可以知道如何更改它吗?谢谢。

I am trying to alter a datatype for a derby db column. The current price column is set as DECIMAL(5,0). I would like to alter it to DECIMAL(7,2). I did this :

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

But it did not work, and showing the error:

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

May I know how is it possible to alter it? Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

莫多说 2024-08-31 03:28:05

以下是将列 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;

Here is the Derby SQL script to change column MY_TABLE.MY_COLUMN from BLOB(255) to 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;
怎会甘心 2024-08-31 03:28:05

我认为你可以这样做:

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

(column-Name SET DATA TYPE VARCHAR(integer)) for Datatype String 作为示例......

I think you can do like this:

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

(column-Name SET DATA TYPE VARCHAR(integer)) for Datatype String as an example...

左岸枫 2024-08-31 03:28:05

下面是一种以这种方式更改列数据类型的稍微复杂的方法:

  1. 添加所需数据类型的新列
  2. 发出“update ... set new-column = old-column 将数据从旧列复制到新列
  3. 删除旧列
  4. 将新列重命名为旧列的名称,

但最终效果将是相同的,

如果您无法确定执行此操作的 SQL 的确切细节,请告诉我们,我们会提供帮助。

Here's a slightly more complicated way to alter the column's data type in this fashion:

  1. Add a new column, of the desired data type
  2. Issue "update ... set new-column = old-column to copy the data from the old column to the new column
  3. drop the old column
  4. Rename the new column to have the name of the old column.

Slightly more steps, but in the end the effect will be the same.

If you have trouble working out the exact details of the SQL to do this, let us know and we'll help.

风向决定发型 2024-08-31 03:28:05

您可以像这样更改表:

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

或者在 Rails 中,只需使用:

change_column :table_name, :column_name, :integer

You can alter table like this:

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

Or in Rails, just use:

change_column :table_name, :column_name, :integer
说谎友 2024-08-31 03:28:05

Posgtes 解决方案:

ALTER TABLEprices_table ALTERprice_columnTYPEdecimal(7,2)

Posgtes Solution :

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文