我必须从选择中获取一个值并创建一个要在插入中使用的变量,在 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。
有谁能够帮助我?