В MySQL 8.0.16 я протестировал вашу таблицу:
mysql> CREATE TABLE test (ID int(11) NOT NULL AUTO_INCREMENT, price int(11) DEFAULT NULL CHECK (price > 20), PRIMARY KEY (ID) );
mysql> SHOW CREATE TABLE test\G
*************************** 1. row ***************************
Table: test
Create Table: CREATE TABLE `test` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`price` int(11) DEFAULT NULL,
PRIMARY KEY (`ID`),
CONSTRAINT `test_chk_1` CHECK ((`price` > 20))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
Теперь мы видим имя ограничения CHECK, которое MySQL сгенерировало автоматически.
mysql> ALTER TABLE test DROP CHECK test_chk_1;
Это задокументировано в https://dev.mysql.com/doc/refman/8.0/en/alter-table.html
| DROP {CHECK | CONSTRAINT} symbol
Когда я отбрасываю ограничение CHECK, оно больше не появляется:
mysql> SHOW CREATE TABLE test\G
*************************** 1. row ***************************
Table: test
Create Table: CREATE TABLE `test` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`price` int(11) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
Если вы используете версию MySQL до 8.0.16, вам не нужно ничего делать из этого, потому что более ранние версии MySQL не поддерживают ограничения CHECK. Нечего отбрасывать, потому что это не сохраняет ограничение при создании таблицы.