Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Cоставной PK с датой

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных
Предыдущая тема :: Следующая тема  
Автор Сообщение
Jimmy.BV



Зарегистрирован: 05.12.2007
Сообщения: 2

СообщениеДобавлено: Ср Дек 05 2007 18:09    Заголовок сообщения: Cоставной PK с датой Ответить с цитатой

Добрый день коллеги...
Помощь требуется небольшая...
Есть некая таблица...
Надо сделать составной PK состоящий из трёх полей:
первые два поля это INT (никаких проблем);
но третье поле является типом DATE, НО для PK мне мне из поля DATE нужен только год...
Так вот вопрос как сделать так что бы PK брал из DATE поля только год

Код:

ALTER TABLE table_name
ADD CONSTRAINT pk_name PRIMARY KEY (col_int, col_int, ???col_date???);



может быть что то типа TO_INT('YYYY') ?????

Спасибо за помощь... Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Hastur



Зарегистрирован: 14.06.2007
Сообщения: 24

СообщениеДобавлено: Ср Янв 16 2008 17:56    Заголовок сообщения: Ответить с цитатой

Сделай PK из первых двух полей а третье поле контролируй тригером. Или раздели поле с датой на два в одном день и месяц а в другом год(но это помоему маразм Smile )
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
C37



Зарегистрирован: 09.03.2005
Сообщения: 311

СообщениеДобавлено: Ср Янв 16 2008 23:59    Заголовок сообщения: Ответить с цитатой

Тогда уж логичнее в одном поле хранить нормальную дату, как она есть, а в другое триггером заносить из нее год. Но зачем в PK совать год? Если регистрируемые события гарантированно происходят не чаще раза в год, то можно брать в ключ всю дату...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
критикан



Зарегистрирован: 18.02.2005
Сообщения: 247

СообщениеДобавлено: Пт Апр 11 2008 09:18    Заголовок сообщения: решение есть, но зачем такое решение? Ответить с цитатой

решение задачи есть. просто ввести в таблицу вычисляемое поле (=год(поле_дата)) и использовать его в ключе

вообще говоря, я не знаю баз данных, у которых оптимизатор нормально работает с составными индексами. исключение составляют игрушечные xBase и BTrieve. но в них индекс используется не автоматически оптимизатором, а принудительно программистом
--------------------------------------------------------
всё можно сделать через известное место. но можно сначала подумать о самой задаче
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...