Earlier I wrote about check constraints
when MySQL 8.0.16 was released. But this week I noticed two
different folks having similar problems with them. And sadly it
is 'pilot error'.
The first was labeled MYSQL 8.0.17 CHECK not working even though it has
been implemented and a cursory glance may make one
wonder what is going on with the database.
The table is set up with two constraints. And old timers will
probably mutter something under their breath about using ENUMs
but here they are:
JOB_TITLE varchar(20) CHECK(JOB_TITLE IN ('Lecturer',
'Professor', 'Asst. Professor', 'Sr.
Lecturer')),
…
Showing entries 1 to 2
Aug
23
2019
Apr
25
2019
Before MySQL 8.0.16 you could put constraint checks into your
Data Definition Language (DDL) when creating tables but the
server ignored them. There was much gnashing of teeth as
taunts of "It is not a real database" from other databases
taunted the MySQL Community.
But with 8.0.16 this has all changed. You can now have your data
constraints checked by the server. Below is an example table with
two constraints.
mysql>CREATE TABLE parts
(id int, cost decimal(5,2) not null check (cost >
0),
price
decimal(5,2) not null check (price > 1.0)
);
Query OK, 0 rows affected (0.09 sec)
mysql> insert into parts (id,cost,price) values …
Showing entries 1 to 2