Sql 插入动态值
Sql Insert with dynamic values
我在 postgres 数据库上使用以下查询:
insert into user_settings (google_access_token, google_refresh_token)
select 'google_access_token', 'google_refresh_token' from user
where id = user_id
table user_settings 有一个字段 user_id
对应于用户 table 中名为 id
的字段。但这给出了错误:
column "user_id" does not exist
Hint: There is a column named "user_id" in table "user_settings",
but it cannot be referenced from this part of the query
我猜你需要这样做:
insert into user_settings (google_access_token, google_refresh_token)
select 'google_access_token',
'google_refresh_token'
from user
where id in (select user_id from user_settings )
您正在使用 user_settings 中的一列并插入到 table 中并带有条件。
我认为你必须使用更新语句,因为你的条件是
用户 .id = user_settings .user_id
即使没有匹配值,您也可以更新 table 不带 NULL 值
update user_settings
set
user_settings.google_access_token='google_access_token',
user_settings.google_refresh_token='google_refresh_token'
from user_settings
inner join user
on user_settings.user_id=user.id
我在 postgres 数据库上使用以下查询:
insert into user_settings (google_access_token, google_refresh_token)
select 'google_access_token', 'google_refresh_token' from user
where id = user_id
table user_settings 有一个字段 user_id
对应于用户 table 中名为 id
的字段。但这给出了错误:
column "user_id" does not exist
Hint: There is a column named "user_id" in table "user_settings",
but it cannot be referenced from this part of the query
我猜你需要这样做:
insert into user_settings (google_access_token, google_refresh_token)
select 'google_access_token',
'google_refresh_token'
from user
where id in (select user_id from user_settings )
您正在使用 user_settings 中的一列并插入到 table 中并带有条件。 我认为你必须使用更新语句,因为你的条件是
用户 .id = user_settings .user_id
即使没有匹配值,您也可以更新 table 不带 NULL 值
update user_settings
set
user_settings.google_access_token='google_access_token',
user_settings.google_refresh_token='google_refresh_token'
from user_settings
inner join user
on user_settings.user_id=user.id