значение базы данных sql - PullRequest
       1

значение базы данных sql

0 голосов
/ 06 января 2010

обязательно ли добавлять значение по умолчанию в поля int, bit, datetime ...? какая польза от значения по умолчанию?

Ответы [ 6 ]

1 голос
/ 06 января 2010

Ограничение по умолчанию означает, что если в операторе INSERT или UPDATE не указано значение или значение NULL, будет использоваться значение ограничения DEFAULT.

Нужно ли их определять? Это полностью зависит от бизнес-правил для соответствующих столбцов.

1 голос
/ 06 января 2010

Это не обязательно.

  1. Если вы добавите столбец в таблицу с существующими данными, новый столбец будет инициализирован. Пример: вы некоторое время не собирали какой-либо элемент данных, затем вы начали это делать. Для ранее существовавших записей вы хотите «N / A» или ноль или что-то еще.

  2. Если вы хотите получить одинаковое значение для столбца при вставке строки и по умолчанию, вам не нужно указывать его в SQL. Пример: все пользователи SO начинают с нулевой репутацией.

1 голос
/ 06 января 2010

Это необходимо только тогда, когда поле помечено как не обнуляемое. Преимущество заключается в том, что для новой строки вам не нужно явно вводить значения для каждого поля. Это может быть особенно полезно при добавлении новых полей в существующую схему - вам не придется возвращаться назад и обновлять весь свой код.

Редактировать - извините, вот о чем я думал. Это необходимо при добавлении поля, которое не имеет значения NULL, в непустую таблицу. MySQL назначит значение по умолчанию для всех полей, помеченных как nullable; не уверен насчет SQL Server.

0 голосов
/ 06 января 2010

Полезно по двум причинам, если вы ожидаете, что 90% записей будут иметь одинаковое значение, например Вы можете по умолчанию задать для колонки LANGUAGE значение «EN» и сохранить 90% пользователей, набрав два символа. Это особенно рекомендуется, если существует отношение внешних ключей, если LANGUAGE был пустым, тогда вставка не удалась бы, когда была применена ссылочная целостность - или строки пропали бы, если было выполнено внутреннее соединение с таблицей LANGUAGES.

Во-вторых, как было упомянуто выше, при добавлении нового столбца в таблицу необходимо указать ему значение по умолчанию, если столбец не имеет значения NULL.

0 голосов
/ 06 января 2010

Основное использование - применение модели вашего домена, т. Е. Если столбец должен быть нулевым, а не нулевым, и если столбец помечен как ненулевой, то ему потребуется либо значение по умолчанию (предпочтительно), либо его применение в приложении слой.

Одним из преимуществ является то, что он упрощает ваш код (т.е. не беспокойтесь об обработке нулей)

Битовое поле почти всегда должно быть ненулевым и иметь значение по умолчанию.

0 голосов
/ 06 января 2010

если вы не разрешаете пустые значения в поле (особенно новое, добавляемое в существующую таблицу), рекомендуется добавить значение по умолчанию. если вы этого не сделаете, существующий код INSERT, который не содержит новое поле, потерпит неудачу, потому что значение поля будет считаться нулевым. Он также полезен для таких полей, как отметка времени, поэтому вам не нужно кодировать значение при каждой вставке.

-don

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...