私は以下の表をしました:PostgreSQLの自己参照表 - 親IDをスクリプトに格納する方法は?
DROP SEQUENCE IF EXISTS CATEGORY_SEQ CASCADE;
CREATE SEQUENCE CATEGORY_SEQ START 1;
DROP TABLE IF EXISTS CATEGORY CASCADE;
CREATE TABLE CATEGORY (
ID BIGINT NOT NULL DEFAULT nextval('CATEGORY_SEQ'),
NAME CHARACTER VARYING(255) NOT NULL,
PARENT_ID BIGINT
);
ALTER TABLE CATEGORY
ADD CONSTRAINT CATEGORY_PK PRIMARY KEY (ID);
ALTER TABLE CATEGORY
ADD CONSTRAINT CATEGORY_SELF_FK FOREIGN KEY (PARENT_ID) REFERENCES CATEGORY (ID);
は今、私はデータを挿入する必要があります。
INSERT INTO CATEGORY (NAME) VALUES ('PARENT_1');
そして今、私はそれに子供を追加するだけで挿入された親のIDが必要になります:だから私は親で始まる
INSERT INTO CATEGORY (NAME, PARENT_ID) VALUES ('CHILDREN_1_1', <what_goes_here>);
INSERT INTO CATEGORY (NAME, PARENT_ID) VALUES ('CHILDREN_1_2', <what_goes_here>);
私が手にして、後に親のIDを格納することができますどのようにそれ以降のインサートで使用しますか?
@a_horse_with_no_nameとともに
RETURNING
を使用することであるが、それはこのように動作しません。両方の子供のために、私は 'PARENT_ID'の同じ値を必要とします、両方の関数は私に最新のものを与えます。 – Opal