Атрибут DEFAULT
Атрибут DEFAULT
Домен может определять значение по умолчанию, которое сервер будет использовать при добавлении новой строки, если оператор INSERT не содержит этот столбец в списке столбцов. Значения по умолчанию могут сэкономить время и избавить от ошибок в процессе ввода данных. Например, для столбца DATE возможным значением по умолчанию может быть текущая дата, а для столбца userName (имя пользователя) можно указать контекстную переменную CURRENT_USER.
Значение по умолчанию может быть:
* константой. Значением по умолчанию является заданная пользователем строка, числовое значение или значение даты - часто используется для помещения "нулевого значения" в столбец, куда не могут помещаться пустые значения (NULL);
* CURRENT_TIMESTAMP, CURRENT_DATE, CURRENT_TIME или предварительно определенный литерал даты Firebird (см. главу 10);
* USER, CURRENT_USER или CURRENT_ROLE (если применяются роли);
* CURRENT_CONNECTION или CURRENT_TRANSACTION.
! ! !
ПРИМЕЧАНИЕ. Возможно указание в качестве значения по умолчанию NULL. Хотя это излишне, поскольку столбцы, допускающие пустое значение, в любом случае инициализируются по умолчанию значением NULL. Более того, явное указание значения по умолчанию NULL может привести к конфликтам, если столбец, использующий домен, должен быть определен с ограничением NOT NULL (CM. разд. "Атрибут NOT NULL" далее в этой главе).
. ! .
Следующий оператор создает домен, который должен иметь положительное значение больше 1000. Если в операторе INSERT не указан столбец, созданный на основе этого домена, столбцу будет назначено значение по умолчанию 9999:
CREATE DOMAIN CUSTNO
AS INTEGER
DEFAULT 9999
CHECK(VALUE > 1000);
Если ваша операционная система поддерживает использование многобайтовых символов в именах пользователей или если вы используете многобайтовый набор символов при определении роли, то каждый столбец, в котором должно сохраняться такое значение по умолчанию, должен быть определен с использованием подходящего набора символов.
Когда значения по умолчанию не работают
Распространенная ошибка предполагать, что значение по умолчанию будет использовано, когда Firebird получает значение NULL в столбце, имеющем значение по умолчанию. Чтобы быть уверенным в правильном использовании значений по умолчанию, нужно понимать, что значение по умолчанию будет применено:
* только при добавлении новой строки;
* только если оператор INSERT не включает столбец со значением по умолчанию в списке столбцов.
Если ваше приложение содержит столбец, имеющий значение по умолчанию, в операторе INSERT и передает NULL в списке значений, то будет сохраняться значение NULL или будет вызвано исключение для столбца, не допускающего пустое значение, независимо от наличия значения по умолчанию.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Атрибут
Атрибут С помощью атрибутов можно указывать различные способы отображения информации, добавляемой с помощью одинаковых элементов, а в некоторых случаях применение элемента без атрибутов не дает результатов. Например, в одном абзаце нужно выровнять текст по левому краю,
Атрибут DOOR_UNREF для серверов
Атрибут DOOR_UNREF для серверов В разделе 15.3 мы отметили, что при вызове door_create для создаваемой двери можно указать атрибут DOOR_UNREF. В документации говорится, что если количество дескрипторов, относящихся к этой двери, уменьшается с двух до одного, осуществляется специальный
Урок 10 Слои как необходимый атрибут многослойных изображений
Урок 10 Слои как необходимый атрибут многослойных изображений До нынешнего момента мы рассматривали изображения как нечто скучное и плоское, что-то напоминающее лист бумаги. На самом же деле они могут иметь гораздо более сложную форму. Вспомните такую вещь, как
Default Scanline Renderer
Default Scanline Renderer Свиток Default Scanline Renderer вкладки Renderer (Визуализатор) используется для настройки визуализатора, встроенного в 3ds Max (рис. 6.4). Рис. 6.4. Свиток Default Scanline Renderer вкладки Renderer (Визуализатор) окна Render Scene (Визуализация сцены)Для настройки общих параметров сканирующего
Атрибут Obsolete в действии
Атрибут Obsolete в действии Теперь, когда класс HorseAndBuggy обозначен как устаревший, при размещении экземпляра этого типа вы должны увидеть соответствующую строку в сообщении, появившемся в окне со списком ошибок Visual Studio 2005 (рис. 12.7). Рис. 12.7. Атрибуты в действииВ данном случае
Определение страницы Default.aspx
Определение страницы Default.aspx После установки шаблона страниц вы можете приступить к созданию индивидуальных страниц *.aspx, определяющих в совокупности с дескриптором ‹asp: contentplaceholder› шаблона содержимое пользовательского интерфейса. При создании нового Web-узла среда
Атрибут [WebService]
Атрибут [WebService] Класс Web-сервиса XML может быть помечен необязательным атрибутом [WebService] (не путайте его с базовым классом WebService). Этот атрибут поддерживает ряд именованных свойств, первым из которых является Namespace. Это свойство можно использовать для указания пространства
Атрибут [WebServiceBinding]
Атрибут [WebServiceBinding] В .NET 2.0 Web-сервис XML может содержать атрибут [WebServiceBinding]. Среди прочего этот атрибут используется для того, чтобы указать соответствие данного Web-сервиса XML "базовому профилю совместимости Web-сервисов (WSI) версии 1.1". Но что это значит? Если вы активно
Атрибут [WebMethod]
Атрибут [WebMethod] Атрибут [WebMethod] должен указываться для каждого метода, который вы хотите сделать доступным в рамках данного Web-сервиса XML. Как и большинство других атрибутов, тип WebMethodAttiibute может иметь целый ряд необязательных именованных свойств. Давайте рассмотрим каждую
Распределитель по умолчанию (The default allocator)
Распределитель по умолчанию (The default allocator) template ‹class T›class allocator {public: typedef T* pointer; typedef const T* const_pointer; typedef T& reference; typedef const T& const_reference; typedef T value_type; typedef size_t size_type; typedef ptrdiff_t difference_type; allocator(); ~allocator(); pointer address(reference x); const_pointer const_address(const_reference x); pointer allocate(size_type n); void deallocate(pointer
Атрибут NOT NULL
Атрибут NOT NULL Включите этот атрибут в описание домена, если вы хотите, чтобы все столбцы, создаваемые на основе этого домена, имели непустое значение.NULL - который является не значением, а состоянием, - всегда будет недопустимым для любого столбца, имеющего атрибут NOT NULL.
Атрибут CHARSET/CHARACTER SET
Атрибут CHARSET/CHARACTER SET Для систем, которым нужно множество наборов символов внутри одной базы данных, объявление доменов, связанных с наборами символов для всех ваших символьных столбцов (CHAR, VARCHAR SUB_TYPE 1 и массивов символьных типов), может быть очень элегантным способом
Атрибут COLLATE
Атрибут COLLATE Предложение COLLATE в операторе создания домена задает явную последовательность сортировки для доменов CHAR и VARCHAR. Вы должны выбрать порядок сортировки, который поддерживается набором символов, объявленным наследуемыми и предполагаемым для домена.Синтаксис
Атрибут xsl:use-attribute-sets
Атрибут xsl:use-attribute-sets Мы упомянули о том, что именованные наборы атрибутов используются в элементах посредством атрибута xsl:use-attribute-sets. Разберем более детально, где этот атрибут может применяться, и какие функции он при этом выполняет. Для удобства эти данные сведены в