Ограничение DEFAULT в SQL

GuDron

dumpz.ws
Admin
Регистрация
28 Янв 2020
Сообщения
8,013
Реакции
1,459
Credits
26,539
Ограничение DEFAULT используется для установки значений по умолчанию при попытке вставить пустое (NULL) значение в столбец. Например:
SQL:
CREATE TABLE Colleges (
  college_id INT PRIMARY KEY,
  college_code VARCHAR(20),
  college_country VARCHAR(20) DEFAULT 'Japan'
);
Здесь значением по умолчанию для столбца college_country является Japan.

Если мы попытаемся сохранить значение NULL в столбце college_country, то значением станет Japan. Например:
SQL:
-- Вставляем значение 'Japan' в столбец college_country
INSERT INTO Colleges (college_id, college_code)
VALUES (1, 'ARP76');
 
-- Вставляем значение 'UAE' в столбец college_country
INSERT INTO Colleges (college_id, college_code, college_country)
VALUES (2, 'JWS89', 'UAE');

Ограничение DEFAULT с ALTER TABLE
Мы также можем добавить ограничение DEFAULT к существующему столбцу с помощью оператора ALTER TABLE. Например:

SQL Server
SQL:
ALTER TABLE Colleges
ADD CONSTRAINT country_default
DEFAULT 'Japan' FOR college_country;
PostgreSQL

ALTER TABLE Colleges
ALTER COLUMN college_code SET DEFAULT 'Japan';
MySQL

ALTER TABLE Colleges
ALTER college_country SET DEFAULT 'Japan';
Oracle

ALTER TABLE Colleges
MODIFY college_country DEFAULT 'Japan';
Здесь значением по умолчанию для столбца college_country является Japan, если кто-то попытается вставить NULL.

Удалить ограничение DEFAULT


Мы можем удалить ограничение DEFAULT, используя оператор DROP. Например:

SQL Server, PostgreSQL, Oracle
SQL:
ALTER TABLE Colleges
ALTER COLUMN college_country DROP DEFAULT;
MySQL

ALTER TABLE Colleges
ALTER college_country DROP DEFAULT;
Здесь мы удаляем ограничение DEFAULT из столбца college_country.