2010-01-06 2 views

ответ

0

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

-don

+0

Что делать, если я использую LINQ to SQL? не linq уже поддерживает значение по умолчанию по умолчанию? – forme

+0

Я понятия не имею. Я никогда не использовал linq, извините. –

1

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

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

+1

Неправильно.Просто укажите ненулевое значение в каждом INSERT, и по умолчанию не требуется. Удобно, но не обязательно. –

+0

Re: edit: right. –

0

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

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

Немного поле должно почти всегда ненулевое и имеют по умолчанию.

0

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

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

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

1

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

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

0

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

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