次のようなもので初期化された2つのテーブルがあります。
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
列がfoo
シリアルではなく varchar(254) である理由は、通常の操作では、独自の ID 値を生成する代わりに、Google OAuth2 によって提供される ID を挿入しているためです。
temp
これで、first_name
列で呼び出す 3 番目のテーブルに一連のレコードができました。この投稿をエミュレートしようとしていますが、文字列の主キーに対して行う方法がわかりません。
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 ドキュメントにあるように、insert ステートメントに続く引数を の宣言に一致するテーブルの形式にする必要があることはわかっていますmy_user
。ここで必要なIDの列を生成する方法、または1つの数字が繰り返される列を生成する方法がわからないだけだと思います。
読んでくれてありがとう