суббота, 18 ноября 2017 г.

MySQL. Урок 12. Установим ограничения на PRIMARY KEY, UNIQUE KEY. Оператор CONSTRAINT.

-- Ограничения.

-- Удаляем таблицу.
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 'Таблица товаров';

Комментариев нет:

Отправить комментарий

Materialize-css. Футер

Сделаем футер и прижмем к низу страницы. Документация: https://materializecss.com/footer.html