我如何在H2中定义一个computedColumnExpression,它会随着行的每次更新而增加行的字段,并从零开始。
好吧,根据定义,每次发生更新时都会运行computedColumnExpression。但
我会从像
这样的列定义开始"usecount" INT4 (1+(SELECT IFNULL("usecount",0) from "data" WHERE ID=XXXX))
但是我应该为XXXX使用什么?
我查看了触发器,并考虑在newRow
方法中更新fire
,但这似乎没有任何效果。
鉴于第一个答案和我不成功的尝试,我需要提一下表已经存在,我需要表定义为ALTER TABLE "data" ADD COLUMN
。我不会想到它会有所作为.-(
答案 0 :(得分:1)
你可以使用这样的声明:
create table foo (pk int primary key,
usecount int as usecount + 1);
...最右边的usecount
引用前一个值。插入行时只需插入0
值:
insert into foo values (42, 0);
...会自动将值增加到1
。
如果您已拥有该表,则可以分两步添加该列:
alter table foo add column usecount int default 0;
alter table foo alter column usecount int as usecount + 1;