Slide 23
Slide 23 text
チェック制約
● チェック制約関する設定
○ tidb_enable_check_constraint
■ チェック制約による整合性の確認を行うかどうか
■ デフォルトは`OFF`(無効)
● tidb_enable_check_constraint = off の動作
○ DDL(create table)では警告が出力され、チェック制約は作成されません
mysql> select @@global.tidb_enable_check_constraint;
+---------------------------------------+
| @@global.tidb_enable_check_constraint |
+---------------------------------------+
| 0 |
+---------------------------------------+
mysql> CREATE TABLE users (
-> id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
-> username VARCHAR(60) NOT NULL,
-> UNIQUE KEY (username),
-> CONSTRAINT min_username_length CHECK (CHARACTER_LENGTH(username) >=4)
-> );
Query OK, 0 rows affected, 1 warning (0.18 sec)
mysql> show warnings;
+---------+------+---------------------------------------+
| Level | Code | Message |
+---------+------+---------------------------------------+
| Warning | 1105 | the switch of check constraint is off |
+---------+------+---------------------------------------+
1 row in set (0.00 sec)
○ チェック制約は存在しないないため、違反しうる
SQLも成功します
mysql> INSERT INTO users (username) VALUES ('a');
Query OK, 1 row affected (0.01 sec)