Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xampp 如何在maria DB中创建检查约束以检查字符类型的多个值?_Xampp_Mariadb_Mariasql_Mariadb Connect Engine - Fatal编程技术网

Xampp 如何在maria DB中创建检查约束以检查字符类型的多个值?

Xampp 如何在maria DB中创建检查约束以检查字符类型的多个值?,xampp,mariadb,mariasql,mariadb-connect-engine,Xampp,Mariadb,Mariasql,Mariadb Connect Engine,我一直在为我的问答网站(如StackOverflow)的大学项目工作,但我在Maria DB中创建表时遇到了一个问题 我使用最新版本的XAMPP,默认情况下使用maria DB而不是MYSQL 所以我想创建一个post表,其中包含post类型p_类型,比如问题、答案、评论、 我使用以下代码 create table post ( p_type char(1) check(p_type = 'q' OR p_type = 'a' OR p_type = 'c') ); 我使用InnoDB存储引

我一直在为我的问答网站(如StackOverflow)的大学项目工作,但我在Maria DB中创建表时遇到了一个问题

我使用最新版本的XAMPP,默认情况下使用maria DB而不是MYSQL

所以我想创建一个post表,其中包含post类型p_类型,比如问题、答案、评论、

我使用以下代码

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手册中的Check约束,但没有任何与Char类型相关的示例

因此,任何答复都将不胜感激
提前感谢

您的语法很好,版本错误。10.2之前的MariaDB版本和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)