ORA-00904,代码新手 我需要帮助来确定问题所在
ORA-00904, Code Newbie I need help in identifying what's wrong
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 列,但我仍然无法 运行 它。
您正在创建具有 3 个字段的 table TASK_SKILL:TASK_ID、SKILL_ID 和 NUMBER_OF_EMPLOYEES。您还想通过 TASK_ID、PROJECT_ID、SKILL_ID 创建主键。 Oracle 是对的,您的 table 中没有 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));
在 table 的 PK 中,您只能包含来自 table 的字段,而不包含来自相关 table 的字段。因此,无需包含引用的 PROJECT_ID.
发生这种情况是因为您试图创建一个 table,其中的列不存在,在本例中为 PROJECT_ID
。在 TASK_SKILL
Table 中,您只定义了 3 列:
TASK_ID
,这是PROJECT_SCHEDULE_TASK
table 的外键
SKILL_ID
,这是PROJECT
的外键table。
NUMBER_OF_EMPLOYEES
这是一个整数。
尝试像这样创建 table:
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,你可以先打好数据库设计的基础再去hands-on。
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 列,但我仍然无法 运行 它。
您正在创建具有 3 个字段的 table TASK_SKILL:TASK_ID、SKILL_ID 和 NUMBER_OF_EMPLOYEES。您还想通过 TASK_ID、PROJECT_ID、SKILL_ID 创建主键。 Oracle 是对的,您的 table 中没有 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));
在 table 的 PK 中,您只能包含来自 table 的字段,而不包含来自相关 table 的字段。因此,无需包含引用的 PROJECT_ID.
发生这种情况是因为您试图创建一个 table,其中的列不存在,在本例中为 PROJECT_ID
。在 TASK_SKILL
Table 中,您只定义了 3 列:
TASK_ID
,这是PROJECT_SCHEDULE_TASK
table 的外键
SKILL_ID
,这是PROJECT
的外键table。NUMBER_OF_EMPLOYEES
这是一个整数。
尝试像这样创建 table:
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,你可以先打好数据库设计的基础再去hands-on。