列依赖于 postgresql 中的串行列

Column dependent on serial column in posgresql

我正在使用 Java 的准备好的语句来提交插入语句。我有两列是我关心的:

create table(a serial, b integer)

我想使用 generate_series(1, 10000)

插入

但是,我想设置整数

B = A mod 10

是否有 SQL 可以做到这一点?我想一次性实现这一点,这样我就可以给 Java 的准备好的语句一个字符串。

例如INSERT INTO my_table values (generate_series(1,100000), =mod 10 of whatever was generated in the previous column)

这是你想要的吗?

insert into t (b)
    select val % 10
    from generate_series(1, 10000, 1) gs(val)
    order by gs.val;

Here 是一个 db<>fiddle.

您创建 table t(a serial, b integer)。这将是一个名为 t_a_seq 的序列。您可以 'override' 自动生成列 a,对该序列使用 nextval、currval。所以:

create table t( a serial, b integer);
-- generates sequence t_a_seq;

insert into t (a,b)
    select nextval('t_a_seq'::regclass), currval('t_a_seq'::regclass) % 3
    from generate_series(1, 10000, 1) gs(val)
 ;

不强烈推荐,但它可以完成工作。