CREATE TABLE test (col1 int, col2 text);
CREATE SEQUENCE test_col1_seq OWNED BY test.col1;
ALTER TABLE test ALTER COLUMN col1 SET DEFAULT ceil(nextval('test_col1_seq')/4::numeric);
SELECT * FROM test;
col1 | col2
------+------
1 | a
1 | b
1 | c
1 | d
2 | e
2 | f
2 | g
2 | h
3 | i
(9 rows)
2条答案
按热度按时间5w9g7ksd1#
你可以用
row_number()
和整数除法:这假设您有一个名为
id
. 实际上,我不建议存储这些派生信息。你可以在飞行中计算它,或者把它放到一个视图中。hjqgdpho2#
您仍然可以使用常规序列作为默认值,但请改为执行以下操作:
这只是除以4,然后向下舍入值。