MySQL 8.0 约束
---创建person表
mysql> create table person(id int auto_increment primary key,name varchar(100),age int); Query OK, 0 rows affected (0.12 sec) mysql> mysql> insert into person (name,age) values('张三',-1); mysql> mysql> select * from person; +----+--------+------+ | id | name | age | +----+--------+------+ | 1 | 张三 | -1 | +----+--------+------+ 1 row in set (0.01 sec)
-创建约束:
mysql> alter table person add constraint ck_1 check (age>0); ERROR 3819 (HY000): Check constraint 'ck_1' is violated. mysql> mysql> mysql> mysql> update person set age=20 ; Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> alter table person add constraint ck_1 check (age>0); Query OK, 1 row affected (0.15 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql>
---创建约束前先要保证源数据符合约束条件。否则报 ERROR 3819 (HY000)