×
スキーマオブジェクト
-- 制約を持つ表の作成例
CREATE TABLE orders (
  order_id    NUMBER        PRIMARY KEY,
  customer_id NUMBER        NOT NULL,
  order_date  DATE          DEFAULT SYSDATE,
  amount      NUMBER(10,2)  CHECK (amount > 0),
  status      VARCHAR2(10)  CHECK (status IN ('PENDING','SHIPPED','DONE')),
  CONSTRAINT fk_customer FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);

-- 既存の表に制約を追加する
ALTER TABLE orders ADD CONSTRAINT uq_order_ref UNIQUE (order_ref);
CONSTRAINT 句で制約に名前を付けると、エラー発生時にどの制約に違反したかが分かりやすくなります。

もう少し詳しく