CREATE TABLE TASK_SKILL (TASK_ID INT REFERENCES PROJECT_SCHEDULE_TASK(TASK_ID),
SKILL_ID INT REFERENCES PROJECT(PROJECT_ID),
NUMBER_OF_EMPLOYEES INT,
PRIMARY KEY (TASK_ID, PROJECT_ID, SKILL_ID));
美好的一天,我知道我的問題似乎很新手,對你們大多數人來說都是常識,但我仍在努力學習 SQL
我遇到了“ORA-00904:“PROJECT_ID”:無效識別符號”。
我已經檢查過了,看起來我有一個 Project_ID 列,但是我似乎無法運行它。
uj5u.com熱心網友回復:
您正在創建一個包含 3 個欄位的表 TASK_SKILL:TASK_ID、SKILL_ID 和 NUMBER_OF_EMPLOYEES。您還想通過 TASK_ID、PROJECT_ID、SKILL_ID 創建主鍵。Oracle 是對的,您的表中沒有 PROJECT_ID 欄位。您的欄位稱為 SKILL_ID,因此應使用它創建主鍵,如下所示:
CREATE TABLE TASK_SKILL (TASK_ID INT REFERENCES PROJECT_SCHEDULE_TASK(TASK_ID),
SKILL_ID INT REFERENCES PROJECT(PROJECT_ID),
NUMBER_OF_EMPLOYEES INT,
PRIMARY KEY (TASK_ID, SKILL_ID));
在表的 PK 中,您只包括表中的欄位,而不包括相關表中的欄位。因此,無需包含參考的 PROJECT_ID。
uj5u.com熱心網友回復:
發生這種情況是因為您嘗試使用不存在的列創建表,在本例中為PROJECT_ID. 在TASK_SKILL表中,您只定義了 3 列:
TASK_ID,這是PROJECT_SCHEDULE_TASK表的外鍵SKILL_ID,這是PROJECT表的外鍵。NUMBER_OF_EMPLOYEES這是一個整數。
嘗試像這樣創建表:
CREATE TABLE TASK_SKILL (TASK_ID INT REFERENCES PROJECT_SCHEDULE_TASK(TASK_ID),
SKILL_ID INT REFERENCES PROJECT(PROJECT_ID),
NUMBER_OF_EMPLOYEES INT,
PRIMARY KEY (TASK_ID, SKILL_ID));
最后,如果您剛剛開始學習 SQL,您可以在動手之前先打好資料庫設計的基礎。
外鍵的oracle檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/472560.html
