0
所以,有這種情況,當你有一個表,你想在其中插入行對彼此的引用。就像在複式會計中一樣,每件商品都與它的配對相反。有這張表:最快的查詢插入在PSQL中的交叉引用多行對?
CREATE SEQUENCE tbl_item_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
CREATE TABLE tbl_item (
id integer NOT NULL PRIMARY KEY DEFAULT nextval('tbl_item_id_seq'),
pair_id integer,
label character varying(50) NOT NULL,
FOREIGN KEY (pair_id) REFERENCES tbl_item (id)
);
ALTER SEQUENCE tbl_item_id_seq OWNED BY tbl_item.id;
這些項是程序生成的。通常,一次生成多個對,最終目標是將所有對與一個查詢一起插入。我已經用PHP解決了這個問題,我在其中插入了一行,返回了它的id,插入了另一行,填充了pair_id,並更新了第一行和第二行的id。這意味着3分貝查詢從PHP開始,並且由於有多個對生成,這意味着number_of_pairs * 3查詢。當我有大約100對時,它意味着300個查詢,並且在處理時間上給我一個很好的開銷,我想盡量減少。
所以,問題是,什麼是最快的方式來插入對行參考彼此的ID到PSQL單個表中?