Страницы

Поиск по вопросам

воскресенье, 8 марта 2020 г.

Почему CHECK не работает в MySQL?

#mysql #sql


mysql> create table t (x int check (x>0));
Query OK, 0 rows affected (0.44 sec)

mysql> insert into t value (-1);
Query OK, 1 row affected (0.08 sec)

mysql> create table t1(x int, constraint namec check (x>0));
Query OK, 0 rows affected (0.28 sec)

mysql> insert into t1 value (-1);
Query OK, 1 row affected (0.06 sec)


Почему я не получаю никаких ошибок/предупреждений о том, что добавляемое мной значение
в таблицу не удовлетворяет CHECK?
    


Ответы

Ответ 1



Потому что MySQL игнорирует это объявление. Он не поддерживает таких ограничений. The CHECK clause is parsed but ignored by all storage engines. — MySQL Reference Manual по CREATE TABLE Вместо них предлагается использовать триггеры. Это перевод ответа на вопрос CHECK constraint in MySQL is not working на StackOverflow. См. также аналогичный вопрос на DBA.SE: check constraint does not work?

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

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