Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Не могу выполнить запрос  [new]
LifeNeverWaits
Member

Откуда:
Сообщений: 1
Собственно создал БД,создал таблицы,все вроде указал

USE Car
CREATE TABLE Model
(ID_Car INTEGER PRIMARY KEY CHECK (ID_CAR>1 AND ID_CAR<9999),
NAIM_MOD  CHAR(12)  NOT NULL CHECK ( NAIM_MOD='А-Я'),
V_DVIG FLOAT(4) NOT NULL CHECK (V_DVIG='1-10'),
MAX_SKOR CHAR (3) NOT NULL CHECK(MAX_SKOR='0-350'),
KOL_DVER INTEGER NOT NULL CHECK (KOL_DVER='1-9'),
KOL_MEST INTEGER NOT NULL CHECK (KOL_MEST='1-20'));
 
 
CREATE TABLE CLIENT
(ID_CLIENT INTEGER PRIMARY KEY CHECK (ID_CLIENT>1 AND ID_CLIENT<9999),
FIO CHAR(30) NOT NULL CHECK(FIO='А-Я'),
NAIM_CLIENT CHAR (30)  NULL CHECK (NAIM_CLIENT='0-9' AND NAIM_CLIENT='А-Я'),
ADDRESS CHAR(35) NOT NULL CHECK  (ADDRESS='0-9' AND ADDRESS='А-Я'),
PHONE CHAR(11) NOT NULL CHECK (PHONE='0-9'));
 
CREATE TABLE COLOUR
(ID_COLOUR INTEGER PRIMARY KEY CHECK (ID_COLOUR>1 AND ID_COLOUR<9999),
OTTENOK CHAR(20) NOT NULL CHECK (OTTENOK='А-Я' AND OTTENOK='-'));
 
 
CREATE TABLE AUTO
(ID_AUTO INTEGER PRIMARY KEY CHECK(ID_AUTO>1 AND ID_AUTO<9999),
ID_Model INTEGER FOREIGN KEY REFERENCES Model(ID_Car) CHECK (ID_Model>1 AND ID_Model>9999),
DATA_VYP DATETIME NOT NULL CHECK (DATA_VYP LIKE '[1-31].[1-12].[2016-2040]'),
STOIMOST INTEGER NOT NULL CHECK(STOIMOST='0-9'),
ID_COLOUR INTEGER FOREIGN KEY REFERENCES COLOUR(ID_COLOUR) CHECK(ID_COLOUR>1 AND ID_COLOUR<9999));
 
 
USE Car
CREATE TABLE BILL
(ID_BILL INTEGER PRIMARY KEY CHECK(ID_BILL>1 AND ID_BILL<9999),
ID_CLIENT INTEGER FOREIGN KEY REFERENCES CLIENT(ID_CLIENT) CHECK(ID_CLIENT>1 AND ID_CLIENT<9999),
ID_AUTO INTEGER FOREIGN KEY REFERENCES AUTO (ID_AUTO) CHECK (ID_AUTO>1 AND ID_AUTO<9999),
DATA_PROD DATETIME NOT NULL CHECK (DATA_PROD LIKE '[1-31].[1-12].[2016-2040]'),
OPLATA CHAR(3) NOT NULL CHECK(OPLATA='DA' AND OPLATA='NET'));


Но при insert

INSERT INTO [Cars].[dbo].[CLIENT]
     VALUES
('1231','Петров Петр Петрович','Null', 'Калинина 132','89656237138');


Получаю ошибку
"Конфликт инструкции INSERT с ограничением CHECK "CK__CLIENT__FIO__1920BF5C". Конфликт произошел в базе данных "Cars", таблица "dbo.CLIENT", column 'FIO'."

INSERT INTO [Cars].[dbo].[Colour]
     VALUES
('1231','Красный');


"Конфликт инструкции INSERT с ограничением CHECK "CK__COLOUR__OTTENOK__1FCDBCEB". Конфликт произошел в базе данных "Cars", таблица "dbo.COLOUR", column 'OTTENOK'."

и тд

В чем проблема?
11 апр 16, 11:27    [19041359]     Ответить | Цитировать Сообщить модератору
 Re: Не могу выполнить запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
LifeNeverWaits
В чем проблема?
В том, что возможна только фамилия 'А-Я', и никакая другая!
FIO CHAR(30) NOT NULL CHECK(FIO='А-Я'),
11 апр 16, 11:30    [19041387]     Ответить | Цитировать Сообщить модератору
 Re: Не могу выполнить запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
LifeNeverWaits,

хотя, может быть, то, что вы написали, имеет какой-то смысл, потому что у вас не MSSQL?

Полистайте справку по SQL, особенно про операторы LIKE и BETWEEN
11 апр 16, 11:32    [19041403]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить