首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

SQL 字段約束:CHECK 限制為 8 的倍數、NUMERIC(7,2) 實現 5 位整數 2 位小數

     編輯:程式設計綜合問答

約束定義


-- 1. 僅允許 8 的倍數(含 0)
CREATE TABLE demo (
    qty INT CHECK (qty % 8 = 0)
);

-- 2. 5 位整數 + 2 位小數(共 7 位精度)
CREATE TABLE demo (
    amount NUMERIC(7, 2)  -- 精度 7,標度 2 → 整數部分最多 5 位
);

說明

  • `CHECK (qty % 8 = 0)` 插入/更新時自動驗證,不滿足拋錯誤。
  • `NUMERIC(p,s)` / `DECIMAL(p,s)`:`p` 總位數(精度),`s` 小數位數(標度)。整數位 = `p-s`。
    `NUMERIC(7,2)` 範圍:`-99999.99` ~ `99999.99`。
  • MySQL 中 `INT` 無 `CHECK` 強制(8.0.16+ 支持),舊版本需觸發器。
  • Oracle/PostgreSQL/SQL Server 完整支持 `CHECK`。

參考

SQL CHECK 約束詳細用法

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved