Запросы, планы, оптимизация запросов, ...
Модераторы: kdv, CyberMax
-
Fed
- Сообщения: 17
- Зарегистрирован: 13 ноя 2005, 10:39
Сообщение
Fed » 24 ноя 2005, 06:21
Напишите, пожалуйста, пример того как вставить в качестве literal дату при объявлении столбца. Чего-то типа этого:
Код: Выделить всё
CREATE TABLE Table1 (
ID INTEGER,
DATE1 DATE DEFAULT DATE)
Меня интересует, что вместо DATE в последней строчке писать, а то в докуме я чего-то не нашел. А время также не получиться? Только триггером или хранимой процедурой надо?
-
Merlin
- Динозавр IB/FB
- Сообщения: 1502
- Зарегистрирован: 27 окт 2004, 11:44
Сообщение
Merlin » 24 ноя 2005, 12:16
Встречный вопрос - а что туда будешь писать в триггере или хранимой процедуре?
-
svalx
- Сообщения: 5
- Зарегистрирован: 24 ноя 2005, 12:34
Сообщение
svalx » 24 ноя 2005, 12:43
CREATE TABLE Table1 (
ID INTEGER,
DATE1 DATE DEFAULT CURRENT_DATE)
Во всех новых записях, если явно не будет задано значение поля DATE1, то ему перед вставкой будет присвоено значение текущей даты.
У меня тоже вопрос в тему:
CREATE TABLE Table1 (
ID INTEGER,
DATE1 DATE DEFAULT CURRENT_DATE+1) - не работает.
Есть ли какая-нибудь возможность задавать в качестве значения по умолчанию для домена или непосредственно для поля таблицы вычисляемые значения (по смыслу как примере CURRENT_DATE+1)?
-
Fed
- Сообщения: 17
- Зарегистрирован: 13 ноя 2005, 10:39
Сообщение
Fed » 24 ноя 2005, 13:18
Я в принципе так и полагал. svalx, тут я пока искал ответ на форуме, наткнулся - попробуй писать:
Спасибо. А что со временем?
-
svalx
- Сообщения: 5
- Зарегистрирован: 24 ноя 2005, 12:34
Сообщение
svalx » 24 ноя 2005, 13:29
Fed писал(а):А что со временем?
В dialect 3 можно пользоваться константами
Код: Выделить всё
CURRENT_TIME, CURRENT_TIMESTAMP, CURRENT_DATE
соответственно для полей типа TIME, DATE и TIMESTAMP.
Но меня интересует общий принцип. Например нужна для поля дата по умолчанию равная "Сегодня + 6 месяцев"...
-
Fed
- Сообщения: 17
- Зарегистрирован: 13 ноя 2005, 10:39
Сообщение
Fed » 24 ноя 2005, 13:33
Да, спасибо. Я как раз про время нашел. А общий принцип... не знаю.
-
svalx
- Сообщения: 5
- Зарегистрирован: 24 ноя 2005, 12:34
Сообщение
svalx » 24 ноя 2005, 14:01
Скорее всего задать значением по умолчанию для поля произвольную (по отношения к текущей) дату можно только с помощью триггера:
Код работает:
Код: Выделить всё
SET TERM ^ ;
CREATE TRIGGER "Table1_BI" FOR "Table1"
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW."DATE1" IS NULL) THEN
NEW."DATE1" = current_date + 1;
END
^
SET TERM ; ^
Думал, что можно проще...