是的,MariaDB 可以針對欄位設定上下限,通常使用 CHECK
約束(constraint)來實現。CHECK
約束允許你在表的某一欄位上定義條件,插入或更新數據時如果不符合條件,則會被拒絕。
以下是一個簡單的例子,展示如何在一個表中針對欄位設置上下限:
CREATE TABLE 產品 (
產品ID INT PRIMARY KEY,
價格 DECIMAL(10, 2),
CHECK (價格 >= 0 AND 價格 <= 10000)
);
在這個例子中,價格
欄位設置了上下限,價格必須在 0 到 10000 之間。
需要注意的是,在某些版本的 MariaDB 中,CHECK
約束可能默認是禁用的,可以通過配置文件啟用。在 MariaDB 10.2.1 及更高版本,CHECK
約束是原生支持的。
如果你的 MariaDB 版本不支持 CHECK
約束,還可以使用觸發器(trigger)來實現類似功能。例如:
CREATE TRIGGER 檢查價格
BEFORE INSERT OR UPDATE ON 產品
FOR EACH ROW
BEGIN
IF NEW.價格 < 0 OR NEW.價格 > 10000 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '價格必須在 0 到 10000 之間';
END IF;
END;
這樣在插入或更新 產品
表時,如果價格超出了範圍,觸發器會拋出錯誤訊息。
綜上所述,你可以根據你的需求和 MariaDB 版本,選擇使用 CHECK
約束或觸發器來實現欄位上下限的控制。