SQL DEFAULT 约束
SQL DEFAULT 约束
DEFAULT 约束用于在未指定值时,自动为列插入默认值。
默认值将添加到所有新记录中(如果未指定其他值)。
CREATE TABLE 上的 DEFAULT 约束
以下 SQL 语句在创建 Persons 表时为 City 列设置了 DEFAULT 值:
CREATE TABLE Persons (
ID int PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255) DEFAULT 'Sandnes'
);
DEFAULT 约束也可以用于插入系统值,例如使用 CURRENT_DATE() 等函数插入当前日期:
MySQL:
CREATE TABLE Orders (
ID int PRIMARY KEY,
OrderNumber int NOT NULL,
OrderDate date DEFAULT CURRENT_DATE()
);
SQL Server:
要在 SQL Server 中获得相同的结果,请使用以下 SQL(插入当前日期):
CREATE TABLE Orders (
ID int PRIMARY KEY,
OrderNumber int NOT NULL,
OrderDate date DEFAULT CAST(GETDATE() AS date)
);
ALTER TABLE 上的 DEFAULT 约束
当表已创建后,要在 City 列上定义 DEFAULT 约束,请使用以下 SQL:
MySQL:
ALTER TABLE Persons ALTER City SET DEFAULT 'Sandnes';
SQL Server:
ALTER TABLE Persons ADD CONSTRAINT df_City DEFAULT 'Sandnes' FOR City;
MS Access:
ALTER TABLE Persons ALTER COLUMN City SET DEFAULT 'Sandnes';
Oracle:
ALTER TABLE Persons MODIFY City DEFAULT 'Sandnes';
删除 DEFAULT 约束
要删除 DEFAULT 约束,请使用以下 SQL:
MySQL:
ALTER TABLE Persons ALTER City DROP DEFAULT;
SQL Server:
ALTER TABLE Persons DROP CONSTRAINT df_City;
MS Access:
ALTER TABLE Persons ALTER COLUMN City DROP DEFAULT;
Oracle:
ALTER TABLE Persons MODIFY (City DEFAULT NULL);