将子查询结果设置为默认值

问题描述 投票:0回答:1

我想做下一个:

ALTER TABLE bets 
ADD COLUMN owner_id bigint NOT NULL DEFAULT (SELECT min(user_id) FROM users);

我很困惑,postgres不允许将SELECT min(user_id) FROM users子查询的结果保存到变量中,然后再使用它。

任何想法如何将子查询结果设置为默认值?

P.S。 bets表不为空

sql postgresql subquery psql
1个回答
0
投票

这似乎对我有用:

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()
© www.soinside.com 2019 - 2024. All rights reserved.