Значения столбцов по умолчанию позволяют удалить много проблем с созданием записей из вашего кода или логики приложения.
Преимущество # 1: Если у вас есть таблица с 2 столбцами информации пользователя и 20 столбцов TinyInt/логических полей, скажем, они являются параметры конфиденциальности, и вы идете, чтобы создать новую запись в этой таблице, без значение DEFAULT
, которое вам нужно будет указать каждый столбец в вашем запросе. Вероятно, есть общая настройка, которую вы хотите, чтобы эти записи имели по умолчанию, и вы можете установить ее с помощью значений DEFAULT
. Когда вы записываете запись, вам нужно указать только два поля информации об пользователях, а волала, ваша запись создана с хорошим набором общих настроек конфиденциальности. После этого вы можете настроить флаги отдельно.
Преимущество # 2: Вперед совместимость! Если в вашем коде есть пучок INSERT
s, а затем добавляются некоторые столбцы, вам нужно будет вернуться и изменить все эти INSERT
с, если вы не указали значение DEFAULT
(предполагая, что это обычно , что NULL
s не собирается сокращать его).Часто нет необходимости обновлять старый код для нового столбца (поскольку старый код по своему характеру не заботится о новом столбце), так что это было бы огромными больми в @ $$, если бы вам пришлось начинать возвращаясь и обрабатывая каждый новый столбец вашего кода по мере его появления.
Извините, что за вопрос, но если вы не можете придумать веские причины использовать значения по умолчанию для столбцов, то почему вы спорите с разработчиком об этом? – JohnFx
Он смотрит из POV разработчика; не его собственный. Может быть, у него много причин использовать дефолты и не может думать о каких-либо причинах не использовать их? – JeffO