我有两个表是这样初始化的:
create table foo (
"id" varchar(254) not null primary key,
"first_name" varchar(254) not null);
create table my_user (
"id" serial not null primary key,
"role" varchar(254) not null,
"first_name" varchar(254) not null);
id
列是 varchar(254) 而不是序列的原因foo
是因为在正常操作中,我插入的是 Google OAuth2 提供的 id,而不是生成我自己的 id 值。
我现在在第三个表中有一组记录,我temp
用该first_name
列调用。我正在尝试模仿这篇文章,但我不确定如何对字符串主键执行此操作。
select * from (insert into my_user(id, role)
('some id value I want to generate, like historical || incrementing number',
[a fixed number],
select first_name from temp) returning id);
正如Postgres 官方文档中所说,我知道我需要将插入语句后面的参数转换为与my_user
. 我想我只是迷失了如何在这里生成一列我想要的 id,甚至是一列重复的数字。
谢谢阅读