Java Derby:如何按记录访问数据库reocrd

时间:2015-07-19 22:06:05

标签: java derby

我的数据超过了20000000行。我想将一个列(将数字存储为字符串)转换为十进制格式,以便搜索更快。

但是,如果我通过Java尝试将数据加载到结果集中,则会显示结果集崩溃或显示java堆内存错误。

有没有办法修改每条记录,以便可以转换字符串值并将其保存为新列中的小数值?

1 个答案:

答案 0 :(得分:2)

你应该把Java从等式中解放出来 - 原始SQL可以做到这一点。最好的方法是添加一个新列,将新列设置为现有字符串列的十进制转换值,然后(如果您愿意)删除旧字符串列并重命名新列。

例如,如果你正在使用MySQL,这看起来像是:

ALTER TABLE mytable
  ADD COLUMN newcolumn DECIMAL(10,2);

UPDATE mytable
   SET newcolumn = CAST(oldcolumn AS DECIMAL(10,2))
 WHERE true;

ALTER TABLE mytable
 DROP COLUMN oldcolumn,
 CHANGE newcolumn oldcolumn DECIMAL(10,2);