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