如何在(Oracle SQL)中仅允许数字

问题描述 投票:-3回答:1

我想添加一个完整性约束,该约束只允许将数字数据添加到Unit_Price

Create Table Invoice
(InvoiceID Varchar2(6) PRIMARY KEY NOT NULL,
Quantity number(10) NOT NULL, 
Date_of_purchase Date NOT NULL,
Unit_Price number(5,2) CHECK (ISNUMERIC(Unit_Price)) NOT NULL, 
Amount number(10) NOT NULL,
payment_method Varchar(18) CHECK (payment_method in ('Cash','Card','Paypal')) NOT NULL);

[另外,我在另一个表中有一个电子邮件列,如何使它如此,所以必须使用@符号。此外,如果他们不输入电子邮件,则默认应为“ [email protected]”?

sql oracle constraints
1个回答
4
投票

首先,unit_price是数字。无需检查是否为数字;数据类型可以解决这个问题。

电子邮件的基本定义是:

email varchar2(255) default '[email protected]' check (email like '%@%.%')

Here是db <>小提琴。

不过,我强烈建议您不要使用默认值。在这种情况下,NULL更有意义。

© www.soinside.com 2019 - 2024. All rights reserved.