gpt4 book ai didi

mysql - MariaDB 列中仅允许正数

转载 作者:行者123 更新时间:2023-11-29 06:56:06 25 4
gpt4 key购买 nike

我需要确保插入列中的数字是正数(即大于零),但找不到方法来做到这一点。两者都不是decimal type's documentation也不Numeric type overview提供一个解决方案(或技巧),允许我在数据库列上设置这样的约束。

我知道有 unsigned 修饰符,但它只表示该值不能为(即小于零),并将零作为有效值无符号列。

有没有办法在数据库模式级别强制执行此操作?如果没有,我可以在代码中简单地强制执行该规则,但我希望在架构中保持类型信息的明确。

最佳答案

MariaDB 10.2 支持CHECK constraints .

MariaDB [test]> CREATE TABLE t1 (i INT CHECK(i>0));
Query OK, 0 rows affected (1.04 sec)

MariaDB [test]> INSERT INTO t1 VALUES (1);
Query OK, 1 row affected (0.08 sec)

MariaDB [test]> INSERT INTO t1 VALUES (0);
ERROR 4025 (23000): CONSTRAINT `i` failed for `test`.`t1`
MariaDB [test]> INSERT INTO t1 VALUES (-1);
ERROR 4025 (23000): CONSTRAINT `i` failed for `test`.`t1`
MariaDB [test]>
MariaDB [test]> SELECT @@version;
+----------------+
| @@version |
+----------------+
| 10.2.6-MariaDB |
+----------------+
1 row in set (0.00 sec)

关于mysql - MariaDB 列中仅允许正数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45547884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com