Как разрешить только цифры в (Oracle SQL) - PullRequest
0 голосов
/ 21 марта 2020

Я хочу добавить ограничение целостности, которое позволяет только данным цифр c быть добавленными к 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);

Кроме того, у меня есть столбец электронной почты в другой таблице, как я могу сделать так, чтобы знак @ требовался. Кроме того, если они не вводят электронную почту, тогда это должно быть '' unknow@gmail.con 'по умолчанию?

Редактировать: Извините, тип данных должен был быть varchar2, а не number, поэтому необходимо ограничение.

1 Ответ

4 голосов
/ 21 марта 2020

Во-первых, unit_price - это число. Нет необходимости проверять, является ли это число; тип данных позаботится об этом.

Базовое определение c для электронной почты будет выглядеть следующим образом:

email varchar2(255) default 'unknown@gmail.com' check (email like '%@%.%')

Здесь - это db <> скрипка.

Я настоятельно советую вам не использовать такое значение по умолчанию. NULL имеет гораздо больше смысла в этой ситуации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...