sql - добавить в таблицу столбец, значение которого больше указанного значения - PullRequest
0 голосов
/ 08 февраля 2020
CREATE TABLE Article
(
     ArCode CHAR(5) LIKE A% PRIMARY KEY, 
     ArName VARCHAR2(30) NOT NULL,  
     Rate NUMBER(8, 2), 
     Quantity NUMBER(4) >= 0 DEFAULT 0, 
     Class CHAR(1) CHECK(Class IN('A', 'B', 'C'))
);

Здесь я хочу добавить столбец с именем Quantity, значения которого должны быть больше или равны нулю или по умолчанию равны нулю. Кроме того, столбец ArCode, который должен начинаться с A; Является ли приведенный выше код синтаксически правильным?

Ответы [ 2 ]

1 голос
/ 08 февраля 2020

Это, вероятно, зависит от вашей базы данных. Но я бы сказал, что вам понадобится функция CHECK, как для столбца Class.

Мое предположение (не проверенное, поскольку у меня сейчас нет под рукой SQL db) будет выглядеть примерно так:

CREATE TABLE Article
(
     ArCode CHAR(5) PRIMARY KEY CHECK (ArCode LIKE 'A%'),
     ArName VARCHAR2(30) NOT NULL,  
     Rate NUMBER(8, 2), 
     Quantity NUMBER(4) DEFAULT 0 CHECK (Quantity >= 0), 
     Class CHAR(1) CHECK(Class IN('A', 'B', 'C'))
);
0 голосов
/ 08 февраля 2020

Вы не указали используемую СУБД, но в целом в ANSI SQL вы можете использовать проверочные ограничения для ограничения допустимых значений.

Вы можете найти некоторую общую информацию об этом в эта ссылка: https://en.wikipedia.org/wiki/Check_constraint

, и вы можете найти свои особенности для СУБД, которую вы используете.

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