iT邦幫忙

0

新資料庫、關聯式資料表卡住了

各位大大們好
我目前有一個全新的資料庫,
目前使用Postgresql
需要create table

CREATE TABLE WORKS_ON (
  ESSN	CHAR(9)		NOT NULL,
  PNO	INT		NOT NULL,
  HOURS	DECIMAL(3,1)	NOT NULL,
  PRIMARY KEY(ESSN, PNO),
  FOREIGN KEY(ESSN) REFERENCES EMPLOYEE(SSN),
  FOREIGN KEY(PNO) REFERENCES PROJECT(PNUMBER)
);

由於沒有其他關聯式資料表,我只能事後再用alter table 方式把foreign key, references等 放上去。
但這些東西放上去以後,由於資料表是空的,無法執行insert 指令。
除了把資料表drop掉以
1.先建立資料表
2.匯入資料
3.再建立關聯式

請問有沒有更聰明的方式,能使資料庫bypass檢查?
請問需要下什麼指令?
謝謝哭

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2
外獅佬
iT邦大師 1 級 ‧ 2014-10-22 22:51:26
最佳解答

一句話...辦不到
為什麼不把資料都匯入之後再去建關連鍵?

Kevin iT邦新手 4 級 ‧ 2014-10-23 09:29:31 檢舉

請問我的方式
1.先建立資料表
2.匯入資料
3.再建立關聯式

跟您 Disable Trigger All
在未來會有什麼後遺症嗎 ?

然後第二個問題想請教,這問題讓我思考了一個早上
1.先建立關聯式 (可是用Trigger 把他關掉

2.後建立關聯式(我的方法
資料庫是否會再次檢查是否有錯誤?
畢竟都讓他躺著bypass
思考重點在他有沒有檢查~

還是有延後交易檢查的方式?(網路上這方面文章幾乎沒有

謝謝你

Kevin iT邦新手 4 級 ‧ 2014-10-23 09:39:01 檢舉

我看到有以下兩個方式
使用延遲判斷約束
在建立資料表時
先使用

<pre class="c" name="code">Set constraints all deferred
create table.....



<pre class="c" name="code">alter table my table add foreign.....
INITIALLY DEFERRED DEFERRABLE ;

感謝您

2
Albert
iT邦高手 1 級 ‧ 2014-10-23 08:46:17

CREATE TABLE WORKS_ON (
ESSN CHAR(9) NOT NULL,
PNO INT NOT NULL,
HOURS DECIMAL(3,1) NOT NULL,
PRIMARY KEY(ESSN, PNO),
FOREIGN KEY(ESSN) REFERENCES EMPLOYEE(SSN),
FOREIGN KEY(PNO) REFERENCES PROJECT(PNUMBER)
);

不建議這樣的:資料庫關聯設定
不建議這樣的:Naming Rule
你是幫學校公益團體做系統嗎 ?
我們有學校公益團體系統設計免費服務支援 !
CREATE TABLE WorkOn (
WorkOn_ID NUMERIC(10,0) NOT NULL,
Employee_ID NUMERIC(10,0) NOT NULL,
Project_ID NUMERIC(10,0) NOT NULL,
ESSN VARCHAR(20) NOT NULL,
PName VARCHAR(20) NOT NULL,
Hours DECIMAL(3,1) NOT NULL,
PRIMARY KEY(WorkOn_ID),
FOREIGN KEY(Employee_ID) REFERENCES Employee(Employee_ID),
FOREIGN KEY(Project_ID) REFERENCES Project(Project_ID)
);
建議 Employee, Project 先 insert 進入系統, 再 insert WorkNo
這些我們可以幫你立即免費處理完成(只限:學校公益團體)
www.idempiere.com.tw

看更多先前的回應...收起先前的回應...
Albert iT邦高手 1 級 ‧ 2014-10-23 08:49:20 檢舉

凡是看到 _ID 就是 Key , 不是 PK 就是 FK
就可以 點顯開啟另一個 窗口

Kevin iT邦新手 4 級 ‧ 2014-10-23 09:31:17 檢舉

感謝大大的好心提供,但目前資料表都已經設計完畢。
請問您對於 先放資料後建立資料關聯與先建立關聯後建立資料
有何看法嗎 ?
是否會產生後遺症或是不可預想之後果?
謝謝

賽門 iT邦超人 1 級 ‧ 2014-10-23 11:01:36 檢舉

阿伯久未出面,一出面就是代表公益團體....拍手
樓主就找阿伯幫忙吧!
免錢辦到好的服務,只有阿伯有~~讚

Kevin iT邦新手 4 級 ‧ 2014-11-01 05:34:14 檢舉

抱歉 非學校單位~

我要發表回答

立即登入回答