使用外键约束创建 table 字段
Create table field with foreign key constraint
我想创建一个 table department
:
COLUMN NAME DATATYPE SIZE CONSTRAINT
dept_id number 4 Primary key
prod_id number 4 Foreign key
我试过这个:
CREATE TABLE Department(
dept_id number(4) primary key,
prod_id number(4) foreign key);
显示错误。如何向此 table 添加外键约束?
我假设另一个 table 被命名为 other_table_name
并且它包含一个名为 prod_id
.
的主键
CREATE Department (
dept_id number(4) primary key,
prod_id number(4) REFERENCES other_table_name (prod_id)
);
或不同的语法
CREATE Department (
dept_id number(4) primary key,
prod_id number(4)
...
CONSTRAINT fk_prod_id
FOREIGN KEY (prod_id)
REFERENCES other_table_name (prod_id)
);
外键定义了您的 table 部门与 另一个具有主键的 table 部门之间的关系。这意味着,您不能在 DEPARTMENT 中创建一个 PROD_ID 为 1234 的行,除非在指定的 parent table 中有一个具有值的 pre-existing 行1234 作为它的主键.
那么你有这样一个现成的parenttable吗?如果是这样,您需要在外键定义中包含它的名称。否则你必须创建它。
假设 parent table 是产品:
create table product (
prod_id number(4) primary key
, name varchar2(32) not null
);
然后你可以像这样用外键创建 DEPARTMENT:
CREATE TABLE Department(
dept_id number(4) primary key,
prod_id references PRODUCT );
是的,这就是您需要的所有语法:它会自动创建一个列 PROD_ID,其数据类型和精度与引用的 table 的主键列相同。可以使用更详细的语法。阅读 Oracle SQL 文档到 find out more。
我想创建一个 table department
:
COLUMN NAME DATATYPE SIZE CONSTRAINT
dept_id number 4 Primary key
prod_id number 4 Foreign key
我试过这个:
CREATE TABLE Department(
dept_id number(4) primary key,
prod_id number(4) foreign key);
显示错误。如何向此 table 添加外键约束?
我假设另一个 table 被命名为 other_table_name
并且它包含一个名为 prod_id
.
CREATE Department (
dept_id number(4) primary key,
prod_id number(4) REFERENCES other_table_name (prod_id)
);
或不同的语法
CREATE Department (
dept_id number(4) primary key,
prod_id number(4)
...
CONSTRAINT fk_prod_id
FOREIGN KEY (prod_id)
REFERENCES other_table_name (prod_id)
);
外键定义了您的 table 部门与 另一个具有主键的 table 部门之间的关系。这意味着,您不能在 DEPARTMENT 中创建一个 PROD_ID 为 1234 的行,除非在指定的 parent table 中有一个具有值的 pre-existing 行1234 作为它的主键.
那么你有这样一个现成的parenttable吗?如果是这样,您需要在外键定义中包含它的名称。否则你必须创建它。
假设 parent table 是产品:
create table product (
prod_id number(4) primary key
, name varchar2(32) not null
);
然后你可以像这样用外键创建 DEPARTMENT:
CREATE TABLE Department(
dept_id number(4) primary key,
prod_id references PRODUCT );
是的,这就是您需要的所有语法:它会自动创建一个列 PROD_ID,其数据类型和精度与引用的 table 的主键列相同。可以使用更详细的语法。阅读 Oracle SQL 文档到 find out more。