Добавление default constraint в SQL: автогенерация или назначение
Быстрый ответ
Чтобы задать в SQL значение по умолчанию для столбца, воспользуйтесь следующей командой:
ALTER TABLE ваша_таблица
ADD CONSTRAINT DF_значение_по_умолчанию
DEFAULT 0 FOR столбец_A;
Команда установит ограничение по умолчанию DF_значение_по_умолчанию
для столбца столбец_A
в вашей_таблице
, автоматически присваивая записям без указанного значения значение 0
.
Как задать ограничение по умолчанию: подробное рассмотрение с примерами
При добавлении данных в базу, если не все столбцы имеют указанные значения, ограничение DEFAULT в SQL становится критически важным для обеспечения согласованности данных и предотвращения появления NULL-значений.
Создание таблицы со значением по умолчанию:
CREATE TABLE Счет (
ID_Sчета int,
Баланс_счета decimal NOT NULL DEFAULT 0
-- Начальный баланс некоторых счетов может быть равен нулю.
);
Модификация существующей таблицы:
ALTER TABLE Счет
ADD CONSTRAINT DF_баланс_счета
DEFAULT 0 FOR Баланс_счета;
-- Указываем начальное значение баланса равное 0.
Правила именования: всё о ограничениях по умолчанию
Ограничения по умолчанию с явными именами:
- Улучшают предсказуемость и упрощают управление ограничениями, особенно если позже возникнет необходимость их изменения или удаления.
- Являются примером лучшей практики для поддержания чистоты кода и его понятности.
Ограничения с неявными именами:
- SQL Server автоматически присваивает системное имя вида DFимя_таблицыстолбец<случайное число>, что может затруднить идентификацию и управление.
- Такой подход подходит для временных решений, когда прямой доступ к ограничению в дальнейшем не предполагается.
Ситуации, когда имя ограничения имеет ключевое значение
Удаление ограничения по имени: Имя ограничения невероятно важно знать, когда приходит время снять значение по умолчанию.
ALTER TABLE Счет DROP CONSTRAINT DF_баланс_счета; -- Мы удалили ограничение DF_баланс_счета!
Перенос анонимных ограничений: В скриптах для миграции и в схеме базы данных для контроля версий анонимные ограничения генерируют разные имена при каждом новом выполнении. Это создаёт несоответствия и потенциальные ошибки при деплое.
Визуализация
Установка ограничения по умолчанию похожа на создание безопасной сети для "мягкой посадки" входящих данных.
Столбец таблицы: |🏠| ---- Если нет значения по умолчанию, "вновь прибывшие" (🐦) могут упасть в свободное пространство 🆓!
Значение по умолчанию: |🏠| ---- Если установлено значение по умолчанию, все новые 🐦 мягко приземляются (🪶).
Пример использования SQL команды для установки значения по умолчанию:
ALTER TABLE дома
ADD CONSTRAINT df_перо_по_умолчанию DEFAULT '🪶' FOR птицы;
-- Каждой новой птице автоматически присваивается перо.
Сценарии до и после установки значения по умолчанию:
До установки значения по умолчанию: |🏠| [🐦, 🐦, (🆓)] -- У нас был случай "свободного падения"!
После установки значения по умолчанию: |🏠| [🐦, 🐦, (🪶)] -- Теперь все безопасно, никто не остаётся незамеченным!
Быстрота и надёжность — вот наши новые приоритеты!