从另一个 table 引用主键

reference primary key from another table

我必须创建 2 个表。 第一个

CREATE TABLE orders
( order_id number(10) NOT NULL,
  order_name varchar2(50) NOT NULL,
  payment_id number(10) NOT NULL,
  CONSTRAINT order_id PRIMARY KEY (order_id),
);

并且在创建第二个时出现此错误 ORA-02270: 此列列表没有匹配的唯一键或主键

CREATE TABLE payment
    (
      payments_id number(10) NOT NULL,
      payment_name varchar(50) NOT NULL,
      CONSTRAINT payments_id PRIMARY KEY (payments_id),
      FOREIGN KEY (payments_id) REFERENCES orders(payment_id)
    );

不确定我做错了什么

请帮忙

您需要引用 UNIQUEPRIMARY KEY 列。 payment_id 列没有这些约束之一。

来自Oracle constraint documentation:

Foreign Key Constraints

A foreign key constraint (also called a referential integrity constraint) designates a column as the foreign key and establishes a relationship between that foreign key and a specified primary or unique key, called the referenced key.

相反,您可以将 order_id 列添加到 table:

CREATE TABLE orders(
  order_id   NUMBER(10)   NOT NULL,
  order_name VARCHAR2(50) NOT NULL,
  CONSTRAINT orders__order_id__pk PRIMARY KEY (order_id)
);

CREATE TABLE payment(
  payments_id  NUMBER(10) NOT NULL,
  payment_name VARCHAR2(50) NOT NULL,
  order_id     NOT NULL,
  CONSTRAINT payment__payments_id__pk PRIMARY KEY (payments_id),
  CONSTRAINT payment__order_id__fk    FOREIGN KEY (order_id)
                                      REFERENCES orders (order_id)
);

db<>fiddle here