-3
我有一个包含20000000行以上的数据。我想将一列(将字符串存储为数字)转换为十进制格式,以便搜索更快。Java Derby:如何通过记录访问数据库记录
但是,如果我尝试通过Java,通过将数据加载到结果集中,结果集崩溃或Java堆内存错误显示。
是否有任何方法修改每条记录,以便可以将字符串值转换并保存为新列中的十进制值?
我有一个包含20000000行以上的数据。我想将一列(将字符串存储为数字)转换为十进制格式,以便搜索更快。Java Derby:如何通过记录访问数据库记录
但是,如果我尝试通过Java,通过将数据加载到结果集中,结果集崩溃或Java堆内存错误显示。
是否有任何方法修改每条记录,以便可以将字符串值转换并保存为新列中的十进制值?
您应该将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);
在德比中,最后的语句是两个语句:一个砸柱,一到newcolumn重命名为oldcolumn 。除了轻微的语法差异之外,这种方法在Derby中也很棒! –