Sql 将子查询结果设置为默认值
我想做下一件事:Sql 将子查询结果设置为默认值,sql,postgresql,subquery,psql,Sql,Postgresql,Subquery,Psql,我想做下一件事: ALTER TABLE bets ADD COLUMN owner_id bigint NOT NULL DEFAULT (SELECT min(user_id) FROM users); 我很困惑postgres不允许将SELECT min(user\u id)从用户子查询的结果保存到一个变量,然后重用它 如何将子查询结果设置为默认值 另外,下注表不是空的这似乎对我有用: create function my_foobar_default(OUT id uuid) as
ALTER TABLE bets
ADD COLUMN owner_id bigint NOT NULL DEFAULT (SELECT min(user_id) FROM users);
我很困惑postgres不允许将SELECT min(user\u id)从用户子查询的结果保存到一个变量,然后重用它
如何将子查询结果设置为默认值
另外,下注表不是空的这似乎对我有用:
create function my_foobar_default(OUT id uuid)
as 'select id from foobar order by X desc limit 1'
language sql
alter table Y
add column if not exists SOMEVALUE uuid not null default my_foobar_default()
这似乎对我有用:
create function my_foobar_default(OUT id uuid)
as 'select id from foobar order by X desc limit 1'
language sql
alter table Y
add column if not exists SOMEVALUE uuid not null default my_foobar_default()
@你能举个例子吗?应该是哪种触发?问题是bets
table不为空该字段的默认值是min(user\u id)的用户表是什么?“这对我来说似乎毫无意义。”迈克尔。我需要用一些值初始化owner\u id
,这些值指向users
表。但这是一个迁移脚本,我不知道用户id的起始值是多少,但您不是只设置了所有值bets.owner\u id=min(user\u id)?那就是我迷路的地方。min(用户id)是否会更改?我可以看到max(用户id)正在改变。@MichaelZ。是的,min(user\u id)
可以更改,因为我们使用的是测试环境,生成的用户id可以从测试环境开始1000@jarlh你能举个例子吗?应该是哪种触发?问题是bets
table不为空该字段的默认值是min(user\u id)的用户表是什么?“这对我来说似乎毫无意义。”迈克尔。我需要用一些值初始化owner\u id
,这些值指向users
表。但这是一个迁移脚本,我不知道用户id的起始值是多少,但您不是只设置了所有值bets.owner\u id=min(user\u id)?那就是我迷路的地方。min(用户id)是否会更改?我可以看到max(用户id)正在改变。@MichaelZ。是的,min(user\u id)
可以更改,因为我们使用的是测试环境,其中生成的用户id可以从1000开始