SQL DEFAULTRestricciones

La restricción DEFAULT se utiliza para insertar un valor predeterminado en una columna.

Si no se especifica otro valor, el valor predeterminado se agregará a todos los registros nuevos.

Sintaxis

1. Definir la restricción DEFAULT al crear la tabla:

CREATE TABLE 表名 (
    列名 数据类型 DEFAULT 默认值
);

2. Agregar la restricción DEFAULT a una tabla existente:

ALTER TABLE 表名
ALTER COLUMN 列名 SET DEFAULT 默认值;

Ejemplo

1. Definir la restricción DEFAULT al crear la tabla

Ejemplo

CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    FirstName VARCHAR(50),
    LastName VARCHAR(50),
    HireDate DATE DEFAULT GETDATE(), -- El valor predeterminado es la fecha actual
    Salary DECIMAL(10, 2) DEFAULT 0.00 -- El valor predeterminado es 0.00
);

2. Agregar la restricción DEFAULT a una tabla existente

ALTER TABLE Employees
ALTER COLUMN Salary SET DEFAULT 0.00;

3. Usar el valor predeterminado al insertar datos

INSERT INTO Employees (EmployeeID, FirstName, LastName)
VALUES (1, 'John', 'Doe');

Si no se proporcionan los valores de HireDate y Salary, la base de datos usará automáticamente los valores predeterminados.


Eliminar la restricción DEFAULT

El método de eliminación varía según la base de datos:

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;

Notas

  • DEFAULTEl valor de la restricción debe ser compatible con el tipo de datos de la columna.

  • Si la columna se define comoNOT NULLy no se proporciona un valor predeterminado, al insertar datos se debe proporcionar el valor explícitamente; de lo contrario, se producirá un error.

  • El valor predeterminado puede ser un valor constante, una expresión o una función (comoGETDATE())。

Escenarios de uso

  • Establecer la fecha actual como valor predeterminado para una columna de fecha.

  • Establecer un valor inicial para una columna numérica (como0)。

  • Establecer un estado predeterminado para una columna de estado (como'Active')。

Otras extensiones