選択から値を取得し、挿入で使用する変数を作成する必要がありますが、PostgreSQL では可能ですか? ホスティングで許可されていないため、関数を作成できません。
テーブル作成スキーマは次のとおりです。
CREATE SEQUENCE identificador_produto START 1;
CREATE TABLE product (
id integer DEFAULT nextval('identificador_produto') primary key,
description varchar(60) not null
);
CREATE TABLE material (
product_id integer DEFAULT nextval('identificador_produto') primary key,
description varchar(60) not null
);
必要なものを説明する例:
begin;
select currval('identificador_produto') as id;
insert into material (product_id, description) values (id, 'Gold');
insert into material (product_id, description) values (id, 'Silver');
insert into material (product_id, description) values (id, 'Wood');
insert into material (product_id, description) values (id, 'Steel');
insert into material (product_id, description) values (id, 'Water');
insert into material (product_id, description) values (id, 'Paper');
commit;
「id」値を変数に割り当てる必要があり、それらはそれを使用して同じトランザクションでいくつかの挿入を行いますが、挿入は「製品」の同じシーケンスを共有します。このため、curval() 関数を使用できませんそうしないと、各挿入が異なる ID を取得します。
誰でも私を助けることができますか?