Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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
MariaDB 10.4.6下降场水平检查约束问题_Mariadb_Constraints_Check Constraints - Fatal编程技术网

MariaDB 10.4.6下降场水平检查约束问题

MariaDB 10.4.6下降场水平检查约束问题,mariadb,constraints,check-constraints,Mariadb,Constraints,Check Constraints,我有一张这样的桌子: CREATE TABLE test ( height int(10) CHECK(height>5) ); 当我尝试通过以下方式删除检查约束时: ALTER TABLE test DROP CONSTRAINT height; 我收到了以下错误消息: ERROR 1091 (42000): Can't DROP CONSTRAINT `height`; check that it exists 下面是显示创建表测试命令输出: +-------+-----

我有一张这样的桌子:

CREATE TABLE test (
    height int(10) CHECK(height>5)
);
当我尝试通过以下方式删除
检查约束时:

ALTER TABLE test DROP CONSTRAINT height;
我收到了以下错误消息:

ERROR 1091 (42000): Can't DROP CONSTRAINT `height`; check that it exists
下面是
显示创建表测试命令输出:

+-------+-------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                      
|
+-------+-------------------------------------------------------------------------------------------------------------------+
| test  | CREATE TABLE `test` (
`height` int(10) DEFAULT NULL CHECK (`height` > 5)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+-------------------------------------------------------------------------------------------------------------------+
这里是
SELECT*from information_schema.table_约束,其中table_NAME='test'输出:

+--------------------+-------------------+-----------------+------------------+------------+-----------------+
| CONSTRAINT_CATALOG | CONSTRAINT_SCHEMA | CONSTRAINT_NAME | TABLE_SCHEMA     | TABLE_NAME | CONSTRAINT_TYPE |
+--------------------+-------------------+-----------------+------------------+------------+-----------------+
| def                | test_db           | height          | test_db          | test       | CHECK           |
+--------------------+-------------------+-----------------+------------------+------------+-----------------+

MariaDB 10.2.1介绍了两种定义约束的方法:

  • 作为列定义的一部分给出的检查(表达式)
  • 约束[约束名称]检查(表达式)

如果使用第一种形式(列约束)定义约束,则可以使用
修改列

altertable`test`
修改列'height`INT(10);
如果使用第二种形式(表约束),可以使用
删除约束将其删除:

altertable`test`
放置约束“高度”;

MariaDB 10.2.1介绍了两种定义约束的方法:

  • 作为列定义的一部分给出的检查(表达式)
  • 约束[约束名称]检查(表达式)

如果使用第一种形式(列约束)定义约束,则可以使用
修改列

altertable`test`
修改列'height`INT(10);
如果使用第二种形式(表约束),可以使用
删除约束将其删除:

altertable`test`
放置约束“高度”;

请参阅。

MySQL的内容:“可选符号指定约束的名称。如果省略,MySQL将根据表名、文字“chk”和序号(1,2,3,…)生成名称”;但是,Mariadb没有明确说明约束的名称。我的建议是使用
约束检查…
语法来避免此类问题。Check fiddle:@MadhurBhaiya,感谢您的评论,但我无法更改约束创建行为。它是由framework.MySQL自动创建的:“可选符号指定约束的名称。如果省略,MySQL将根据表名、文本_chk_和序号(1,2,3,…)生成名称”;但是,Mariadb没有明确说明约束的名称。我的建议是使用
约束检查…
语法来避免此类问题。Check fiddle:@MadhurBhaiya,感谢您的评论,但我无法更改约束创建行为。它是由框架自动创建的。