簡體   English   中英

在 Oracle 中將表設置為僅接受列的某些值

[英]Set a Table in Oracle to Only Accept Certain Values for a Column

我希望創建一個僅接受數據庫中某些值的表,並且遇到了默認值選項,但我確信這不會起作用,只是想澄清一下。

據我所知,默認選項將允許您為一行存儲一個值,除非它被其他東西覆蓋。

我要做的是創建一個表,其中 STATUS 列只有值 OPEN 或 CLOSED 所以我的輸出如下所示:

ORDER_ID: 001, 002, 003
STATUS: OPEN, CLOSED, OPEN
ORDER_DATE: 2021-05-29 09:01:25, 2021-05-31 17:35:40, 2021-06-01 15:33:55

到目前為止,我創建的表如下所示:

CREATE TABLE ORDERS (
    ORDER_ID NUMBER NOT NULL,
    STATUS VARCHAR2(6) NOT NULL,
    ORDER_DATE DATE NOT NULL,
    PRIMARY KEY(ORDER_ID)
);

我猜我需要將 order_id 的創建表查詢更改為包括 AUTO_INCREMENT 但它更多的是我想了解的狀態,即如何只接受某些值。

您需要創建一個約束。 允許該列的硬編碼值的check約束。 或者,您可以為包含允許值的表創建外鍵。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM