0

我有一个包含大约 125 000 行的数据库,每行都有主键、几个 int 列和几个 varchar。
我添加了一个 int 列,并尝试在添加非空约束之前填充它。

db 保存在脚本文件中。我在某处读到,所有受影响的行在实际更新之前都已加载到内存中,这意味着不会对每一行进行磁盘写入。整个数据库大约 20MB,这意味着加载它并进行更新应该相当快,对吧?

所以,没有连接,没有嵌套查询,基本更新。我尝试了多个数据库管理器,包括与 hsql jar 捆绑的一个。

更新 tbl1 设置 col1 = 1

查询永远不会完成执行。

4

1 回答 1

1

它可能内存不足。

执行此操作的更简单方法是使用 DEFAULT 1 定义列,无论表的大小如何,它都不会使用太多内存。您甚至可以同时添加非空约束

ALTER TABLE T ADD COLUMN C INT DEFAULT 1 NOT NULL
于 2012-08-05T15:47:23.067 回答