首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Alter Table Column Type在Aster中不起作用-我可能搞砸了

Alter Table Column Type在Aster中不起作用-我可能搞砸了
EN

Stack Overflow用户
提问于 2018-12-07 04:53:03
回答 1查看 189关注 0票数 0

我使用Aster是因为有一些非常棒的随机森林函数可以使用。我的被依赖变量或响应变量是一个布尔型二分变量;0或1。

当我运行随机森林函数时,它会创建响应变量的预测值。它将此变量称为预测,并自动将其创建为VARCHAR(此处为真正的大整数)。

为了做一些计算,我只是希望将它从字符串转换或转换为整数。所有生成的字符串要么是0,要么是1:

代码语言:javascript
复制
alter table a0q892.zf_predict alter column prediction int;

不起作用。我收到的错误消息是:

代码语言:javascript
复制
Executed as Single statement.
Failed [34 : 42000] [AsterData][ASTERJDBCDSII](34) ERROR: syntax error at or near "int" ()

我很确定有很多花哨而优雅的方法可以做到这一点。但是我想我可以简单地把它变成一个整数,用于将来的计算?

EN

回答 1

Stack Overflow用户

发布于 2018-12-07 05:33:58

根据the aster docs,操作列的选项有限。不能更改列数据类型。

但是,aster允许您更改varchar列的大小。您提到希望强制转换为INTEGER,但我猜在您的用例中VARCHAR(1)也可以。如果是,那么你可以去:

代码语言:javascript
复制
ALTER TABLE a0q892.zf_predict ADD prediction VARCHAR(1);

如果你真的需要一个INTEGER (或者VARCHAR(n)以外的任何其他类型),那么你必须按照老方法来处理:

  • 在表中创建具有正确类型的新列
  • 从旧列中填充它
  • 删除旧列

SQL Aster:

代码语言:javascript
复制
ALTER  TABLE a0q892.zf_predict ADD prediction_new int;
UPDATE TABLE a0q892.zf_predict SET prediction_new = CAST(prediction AS int);
ALTER  TABLE a0q892.zf_predict DROP prediction;
ALTER  TABLE a0q892.zf_predict RENAME prediction_new TO prediction;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53659509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档