簡體   English   中英

MariaDB列中僅允許使用正數

[英]Allow only positive numbers in MariaDB column

我需要確保插入到列中的數字為正(即大於零),但是找不到解決方法。 decimal類型的文檔數字類型概述都沒有提供允許我在數據庫列上設置此類約束的解決方案(或技巧)。

我知道有一個unsigned修飾符,但它只表示該值可能不會為 (即小於零),而將零保留為無符號列的有效值。

有沒有辦法在數據庫架構級別上強制執行此操作? 如果沒有,我可以在代碼中輕松執行該規則,但是我想在模式中保持類型信息的明確。

MariaDB 10.2支持CHECK約束

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM