0
我試圖使用psql終端窗口和-f選項(這將執行腳本)使用腳本填充表時出現問題。PostgreSQL,我如何填充這個表有兩個外鍵,因爲它的字段
我可以填充滑雪道和提升表罰款沒有問題,但我有另一個表中包含這些表的外鍵。我可以創建表格,但我無法添加任何東西到桌子上,我根本不知道如何做到這一點。
我的表:
piste {piste_name {PK}, grade, length, fall, open}
lift {lift_name {PK}, lift_type, summit, rise, length, operating}
lift_location {piste_name*{PK}, lift_name*{PK}}
我的腳本:
CREATE TABLE piste (
piste_name varchar(30) PRIMARY KEY NOT NULL,
grade varchar(10) NOT NULL,
length decimal NOT NULL,
fall smallint NOT NULL,
open boolean NOT NULL
);
CREATE TABLE lift (
lift_name varchar(20) PRIMARY KEY NOT NULL,
lift_type varchar(10) NOT NULL,
summit smallint NOT NULL,
rise smallint NOT NULL,
length smallint NOT NULL,
operating boolean NOT NULL
);
CREATE TABLE lift_location (
piste_name varchar(30) REFERENCES piste(piste_name),
lift_name varchar(20) REFERENCES lift(lift_name),
PRIMARY KEY(piste_name, lift_name)
);
所以,如果我插入一些值到這些表:
INSERT INTO lift (lift_name, lift_type, summit, rise, length, operating) VALUES
('test lift', 'gondola', 1920, 440, 1600, true);
INSERT INTO piste (piste_name, grade, length, fall, open) VALUES
('test piste, 'medium', 3, 440, true);
這些表將一個與指定的信息排。基於上述,我想我的lift_location表中有下列信息:
piste_name | lift_name
________________________
test piste | test lift
我怎樣才能做到這一點?
謝謝。 Chris。
對不起,這是一個錯字!所以我只是以同樣的方式插入它?謝謝。 –
@chrisedwards對,'INSERT'沒有什麼特別之處。該約束主要用於維護[「數據的參照完整性」](http://www.postgresql.org/docs/9.3/static/tutorial-fk.html),因此,例如,您不能在不存在的電梯上創建滑雪道和列表之間的關係。 –