Проверка ограничений в MariaDB 10.1.48 не работает

Проверка ограничений в MariaDB 10.1.48 не работает

У меня есть следующая таблица:

CREATE TABLE t1 (
    a INT, 
    b INT, 
    CONSTRAINT a_greater CHECK (a>b)
);

Итак, a должно быть больше b. При выполнении этой вставки это не должно работать:

insert into t1(a,b) values (4,5);

Тем не менее, я могу опубликовать заявление.

1

Версия базы данных:10.1.48-MariaDB-0+deb9u2

Я знаю, я мог бы добиться этого с помощью триггера, но это слишком много усилий, просто чтобы сделать то, что на самом деле должно делать ограничение CHECK.

Есть ли ошибка или это может быть связано с какой-либо неправильной конфигурацией? Что может быть причиной такого поведения и как это исправить?

решение1

MariaDBОГРАНИЧЕНИЕ В этой главе есть следующее утверждение:

До версии MariaDB 10.2.1 выражения ограничений принимались в синтаксисе, но игнорировались.

Ваша версия MariaDB 10.1.48 слишком ранняя, поэтому предложение CONSTRAINT синтаксически проверяется, но в остальном игнорируется.

Вам необходимо обновить MariaDB, текущая версия 11.4.1с февраля 2024 года.

Связанный контент