MySQL DEFAULT 约束用于设置列的默认值。当插入新记录而不指定任何值时,该列将采用默认值。

MySQL CREATE TABLE DEFAULT 约束

下面提到的语句创建一个名为 Employee 的表,其中包含五列:EmpID, Name、City、Age 和 Salary,其中 DEFAULT 约束应用于 City 列。

CREATE TABLE Employee (
  EmpID INT NOT NULL,
  Name VARCHAR(255),
  City VARCHAR(100) DEFAULT 'London',
  Age INT,
  Salary DECIMAL(18,2)
); 

DEFAULT 约束也可用于插入系统值,通过使用 CURRENT_TIMESTAMP 等函数:

CREATE TABLE Orders (
  OrderID INT NOT NULL,
  OrderQuantity INT NOT NULL,
  OrderPrice DECIMAL(18,2),
  OrderDate DATETIME DEFAULT CURRENT_TIMESTAMP
); 

MySQL ALTER TABLE DEFAULT 约束

例如,创建了一个名为 Employee 的表。要对 City 列强制执行 DEFAULT 约束,语句如下:

ALTER TABLE Employee
ALTER City SET DEFAULT 'London';

或者

ALTER TABLE Employee
ALTER COLUMN City SET DEFAULT 'London'; 

删除DEFAULT 约束

从名为 Employee 的表中删除 DEFAULT 约束,声明如下:

ALTER TABLE Employee
ALTER City DROP DEFAULT;

或者

ALTER TABLE Employee
ALTER COLUMN City DROP DEFAULT;