如何在Maria DB中创建检查约束以检查Char类型多个值



我在我的大学项目项目中工作,例如Stackoverflow,但我在玛丽亚db

中创建桌子时面临一个问题

我使用XAMPP的最新版本,默认情况下使用Maria DB代替MySQL

所以我想创建包含帖子类型(p_type(的后表,例如(问题,答案,注释(,

我使用以下代码

create table post
(
 p_type char(1) check(p_type = 'q' OR p_type = 'a' OR p_type = 'c')
);

我使用InnoDB存储引擎,Maria DB版本为10.1.30
但是,当我插入其他字符时(S,Z,X(存储在数据库中这意味着不应用检查约束,

我还访问了Maria DB手册以获取检查约束,但没有与Char类型有关的示例。

所以任何答案都将不胜感激预先感谢

您的语法很好,版本是错误的。MariaDB版本在10.2之前(以及MySQL的所有可用版本(解析CHECK子句,但完全忽略了它。Mariadb 10.2执行实际检查:

MariaDB [test]> create table post ( p_type char(1) check(p_type = 'q' OR p_type = 'a' OR p_type = 'c') );
Query OK, 0 rows affected (0.18 sec)
MariaDB [test]> insert into post values  ('s');
ERROR 4025 (23000): CONSTRAINT `p_type` failed for `test`.`post`
MariaDB [test]> insert into post values  ('q');
Query OK, 1 row affected (0.04 sec)

相关内容

  • 没有找到相关文章

最新更新