在 sqlplus 中添加复合/外键

add composite/ foreign key in sqlplus

关于 SQL 中的键,我有一个非常基本的问题。我正在尝试编写一个 SQL 语句,以便我可以将外键添加到我的 table 中,但是,它总是“table 未找到或丢失”。我无法创建 table 的原因是下一个 table 也有来自另一个 table 的外键,我需要引用它。有解决办法吗?

create table table_name (id char (3) primary key, name varchar (8));

 SQL > table created.

create table table_name_2 (table2ID char (3) primary key, CID char (3), 
name varchar (8), title varchar (8), foreign key (CID) references table_name_3);

SQL > missing table (table_name_3);

create table table_name_3 (CID char (3) primary key, tTitle varchar (8), 
foreign key (phone) references table_name_4);

所以我只能创建 table 3. 我需要做什么才能创建 table 并在编写 [=19= 时添加外键引用] 声明?

我不允许使用 ALTER table。

使用 ALTER TABLE 语句单独 创建外键。像这样:

SQL> CREATE TABLE table_name(
  2    id    CHAR(3)PRIMARY KEY,
  3    name  VARCHAR(8)
  4  );

Table created.

SQL> CREATE TABLE table_name_2(
  2    table2id  CHAR(3)PRIMARY KEY,
  3    cid       CHAR(3),
  4    name      VARCHAR(8),
  5    title     VARCHAR(8)
  6  );

Table created.

SQL> CREATE TABLE table_name_3(
  2    cid     CHAR(3)PRIMARY KEY,
  3    ttitle  VARCHAR(8)
  4  );

Table created.

现在外键:

SQL> ALTER TABLE table_name_2 ADD CONSTRAINT fk_2_3 FOREIGN KEY(cid)
  2    REFERENCES table_name_3;

Table altered.

SQL>

您可以采用的一种方法是使用主键创建 table,然后执行 并添加外键。

改变 TABLE child_table
添加约束 fk_name 外键 (col1) 引用 parent_table(col1);