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);