各位大大們好
我目前有一個全新的資料庫,
目前使用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檢查?
請問需要下什麼指令?
謝謝
一句話...辦不到
為什麼不把資料都匯入之後再去建關連鍵?
請問我的方式
1.先建立資料表
2.匯入資料
3.再建立關聯式
跟您 Disable Trigger All
在未來會有什麼後遺症嗎 ?
然後第二個問題想請教,這問題讓我思考了一個早上
1.先建立關聯式 (可是用Trigger 把他關掉
與
2.後建立關聯式(我的方法
資料庫是否會再次檢查是否有錯誤?
畢竟都讓他躺著bypass
思考重點在他有沒有檢查~
還是有延後交易檢查的方式?(網路上這方面文章幾乎沒有
謝謝你
我看到有以下兩個方式
使用延遲判斷約束
在建立資料表時
先使用
<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 ;
感謝您
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
凡是看到 _ID 就是 Key , 不是 PK 就是 FK
就可以 點顯開啟另一個 窗口