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)

 

posted @ 2022-05-04 09:19  Jiangqiang  阅读(42)  评论(0编辑  收藏  举报