Создание значения, необходимого в инструкции вставки - PullRequest
1 голос
/ 03 июля 2019

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

CREATE TABLE Item
(
    ID INT auto_increment,
    ItemCode VARCHAR(10) unique NOT NULL,
    ItemDescription VARCHAR(50),
    Price DECIMAL(4,2) DEFAULT 0,

    PRIMARY KEY(ID)
);

Ответы [ 2 ]

0 голосов
/ 03 июля 2019

По умолчанию столбцы в SQL принимают значения NULL. И, если значение не указано в INSERT, по умолчанию используется значение NULL.

Когда вы объявляете значение DEFAULT («ограничение») для столбца, вы можете изменить вставленное значение, если оно не указано. Вы не объявили DEFAULT, поэтому используется NULL.

Тогда NOT NULL предотвращает вставку значения NULL. Таким образом, если значение не указано, будет использовано значение DEFAULT. Однако без DEFAULT произойдет ошибка - нарушение ограничения NOT NULL.

Короче говоря, ваше определение делает то, что вы хотите.

Примечание. Триггеры могут влиять на эту функцию, поэтому в приведенном выше примере предполагается, что триггеры не используют значение в этом столбце.

0 голосов
/ 03 июля 2019

Использование not null приведет к применению значения для этого поля только при сохранении записи в базе данных. Если пользователь введет строку пробелов, он все равно будет сохранен. Вам необходимо поместить правила проверки данных в интерфейс вашего приложения.

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