단일 쿼리로 3 개의 테이블에 데이터를 삽입하고 싶습니다.
내 테이블은 다음과 같습니다.
CREATE TABLE sample (
id bigserial PRIMARY KEY,
lastname varchar(20),
firstname varchar(20)
);
CREATE TABLE sample1(
user_id bigserial PRIMARY KEY,
sample_id bigint REFERENCES sample,
adddetails varchar(20)
);
CREATE TABLE sample2(
id bigserial PRIMARY KEY,
user_id bigint REFERENCES sample1,
value varchar(10)
);
모든 삽입에 대한 대가로 키를 받게되며이 키를 다음 테이블에 삽입해야합니다.
내 질문은 다음과 같습니다.
insert into sample(firstname,lastname) values('fai55','shaggk') RETURNING id;
insert into sample1(sample_id, adddetails) values($id,'ss') RETURNING user_id;
insert into sample2(user_id, value) values($id,'ss') RETURNING id;
그러나 단일 쿼리를 실행하면 값을 반환하고 다음 쿼리에서 즉시 재사용 할 수 없습니다.
이것을 달성하는 방법?