Предполагам, че не искате празен (празен низ, за разлика от NULL
) стойности да бъдат разрешени и в таблицата.
Обикновено това е, което CHECK
ограничение за. Правите нещо като
CREATE TABLE
mytable
(
myfield NOT NULL VARCHAR(200),
CHECK(myfield > '')
)
Въпреки това, MySQL
анализира ограничението, но не го прилага. Все още имате право да вмъквате празни стойности.
За да заобиколите това, създайте BEFORE INSERT
задейства и повишава сигнал при опит за вмъкване на празна стойност:
CREATE TRIGGER
tr_mytable_bi
BEFORE INSERT
ON mytable
FOR EACH ROW
BEGIN
IF NEW.myfield = '' THEN
SIGNAL SQLSTATE '45001' SET MESSAGE_TEXT = 'Blank value on mytable.myfield';
END IF;
END;
Направете същото на BEFORE UPDATE
ако искате да забраните и актуализации на празна стойност.