SQL DEFAULTEinschränkungen
Die DEFAULT-Einschränkung wird verwendet, um einen Standardwert in eine Spalte einzufügen.
Wenn kein anderer Wert angegeben wird, wird der Standardwert allen neuen Datensätzen hinzugefügt.
Syntax
1. Definieren Sie eine DEFAULT-Einschränkung beim Erstellen einer Tabelle:
CREATE TABLE 表名 (
列名 数据类型 DEFAULT 默认值
);
2. Fügen Sie einer vorhandenen Tabelle eine DEFAULT-Einschränkung hinzu:
ALTER TABLE 表名 ALTER COLUMN 列名 SET DEFAULT 默认值;
Beispiel
1. Definieren Sie eine DEFAULT-Einschränkung beim Erstellen einer Tabelle
Beispiel
EmployeeID INT PRIMARY KEY,
FirstName VARCHAR(50),
LastName VARCHAR(50),
HireDate DATE DEFAULT GETDATE(), -- Der Standardwert ist das aktuelle Datum
Salary DECIMAL(10, 2) DEFAULT 0.00 -- Standardwert ist 0.00
);
2. Fügen Sie einer vorhandenen Tabelle eine DEFAULT-Einschränkung hinzu
ALTER TABLE Employees ALTER COLUMN Salary SET DEFAULT 0.00;
3. Standardwerte beim Einfügen von Daten verwenden
INSERT INTO Employees (EmployeeID, FirstName, LastName) VALUES (1, 'John', 'Doe');
Wenn keine Werte für HireDate und Salary angegeben werden, verwendet die Datenbank automatisch die Standardwerte.
DEFAULT-Einschränkung löschen
Das Vorgehen zum Löschen unterscheidet sich zwischen verschiedenen Datenbanken:
1、SQL Server
ALTER TABLE 表名 DROP CONSTRAINT 约束名;
2、MySQL
ALTER TABLE 表名 ALTER COLUMN 列名 DROP DEFAULT;
3、Oracle
ALTER TABLE 表名 MODIFY 列名 DEFAULT NULL;
4、MS Access
ALTER TABLE 表名 ALTER COLUMN 列名 DROP DEFAULT;
Hinweise
DEFAULTDer Wert der Einschränkung muss mit dem Datentyp der Spalte kompatibel sein.Wenn die Spalte definiert ist als
NOT NULLund kein Standardwert angegeben wird, müssen Sie beim Einfügen von Daten explizit einen Wert angeben, andernfalls wird ein Fehler gemeldet.Der Standardwert kann eine Konstante, ein Ausdruck oder eine Funktion sein (wie etwa
GETDATE())。
Geeignete Szenarien
Legen Sie das aktuelle Datum als Standardwert für eine Datumsspalte fest.
Legen Sie einen Anfangswert für eine numerische Spalte fest (z. B.
0)。Legen Sie einen Standardstatus für eine Statusspalte fest (z. B.
'Active')。