在 SQL 中,我看到了幾種型別的約束,比如 PRIMARY KEY。NOT NULL、FOREIGN KEY 等。但我現在偶然發現了 DEFAULT 約束,我很困惑。
它防止發生什么?任何查詢都會不遵守它嗎?
如果沒有查詢會因為 DEFAULT 約束而失敗,它真的是一個約束嗎?
謝謝你。迷茫的開發者
uj5u.com熱心網友回復:
如果一列是Not NULL
喜歡
CREATE TABLE mytable (val int NOT NULL)
你試試
INSERT NTO mytable VALUES (NULL)
你會得到一個錯誤,因為資料庫不能用DEFAULT值替換 NULL,因為它不存在。
所以它限制了INSERT INTO
uj5u.com熱心網友回復:
檢查以下答案是否有助于您了解 DEFAULT 約束。 https://stackoverflow.com/a/1213316/7056491
uj5u.com熱心網友回復:
如果一個列有一個 DEFAULT 約束并且INSERTorUPDATE陳述句沒有提供該列的值,MySQL 將使用DEFAULT約束中指定的默認值。
所以對于表:
CREATE TABLE Defaults (
Age int,
Gender varchar(255) DEFAULT 'Female'
);
您可以插入:
INSERT INTO Defaults (`Age`) VALUES ('4');
年齡為 4 歲,性別為“女性”。
DEFAULT 是一個約束,它限制值的插入NULL- 它防止特定列上的 NULL 值。
將失敗的查詢是那些將嘗試NULL在具有 DEFAULT 約束的列上設定的查詢。例子:
INSERT INTO Defaults (`Age`, `Gender`) VALUES ('4', NULL);
或者
UPDATE Defaults SET Gender=NULL;
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/491572.html
