-- Ограничения.
--
Удаляем таблицу.
DROP
TABLE IF EXISTS table2;
--
Индекс можно создать в самой таблице.
-- Автоматически
на PRIMARY KEY и UNIQUE KEY накладываются
ограничения, т.е значение полей не может
быть одинаковым.
CREATE
TABLE IF NOT EXISTS table2
(
id
INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Код товара',
article
CHAR(4) NOT NULL DEFAULT 'AAAA' COMMENT 'Артикул товара',
name
VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Название товара',
price
DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT 'Цена товара',
PRIMARY
KEY(id),
UNIQUE
KEY(article),
INDEX
ixName(name)
)
COMMENT 'Таблица товаров';
--
Вставим в таблицу данные.
INSERT
INTO table2 VALUES
(NULL,
'XXXX', 'Товар 1', '55.00'),
(NULL,
'ZZZZ', 'Товар 2', '65.00'),
(NULL,
'MMMM', 'Товар 3', '75.00');
--
Посмотрим таблицу.
SELECT
* FROM table2;
-- Попробуем
нарушить уникальность.
INSERT
INTO table2 VALUES
(2,
'XXXX', 'Товар 1', '55.00');
--
Это вызывает ошибку. Ограничивает
вставку записи.
--
Дадим название первичному ключу для
отладки и оптимизации БД.
--
CONSTRAINT - означает ограничение.
CREATE
TABLE IF NOT EXISTS table2
(
id
INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Код товара',
article
CHAR(4) NOT NULL DEFAULT 'AAAA' COMMENT 'Артикул товара',
name
VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Название товара',
price
DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT 'Цена товара',
CONSTRAINT
pkId PRIMARY KEY(id),
CONSTRAINT
ukArticle UNIQUE KEY(article),
INDEX
ixName(name)
)
COMMENT 'Таблица товаров';
Комментариев нет:
Отправить комментарий