Реферат Курсовая Конспект
Особенности первичных ключей в PostgreSql - раздел Программирование, РАБОТА З СУБД PostgreSQL Сразу Следует Подчеркнуть, Что Независимо От Ситуации Хорошей Практикой Являе...
|
Сразу следует подчеркнуть, что независимо от ситуации хорошей практикой является использование в качестве ключа дополнительного поля ID типа serial.
Работа с первичными ключами в PostgreSql имеет ряд особенностей. Мы рассмотрим некоторые из них.
Следует подчеркнуть, что в PostgreSql первичный ключ может быть представлен только в виде 1-ного поля. Таким образом, PostgreSql явно не поддерживает составные ключи. Такой ключ должен быть локализован с помощью дополнительного поля ID квази типа serial, а поля, образующие составной ключ, должны не допускать значение NULL.
Если желательно, чтобы ключ был представлен реальным полем, то везде, где это возможно тип поля следует выбирать строковым, например, Номер зачетной книжки студента, хоть он и выглядит как целое число. Однако практика показала, что в тех случаях, когда в качестве первичного ключа таблицы выступают строковые данные, например Фамилия, лучше использовать искусственный первичный ключ - ID, создав дополнительную колонку и определив тип ее элементов как serial. Это сократит затраты при работе с несколькими склеиваемыми таблицами (см. ниже).
Если же ключ представить с типом поля integer, то при попытке ввода из программного приложения новой записи возникнут конфликты с PostgreSql.
Следует подчеркнуть, что при переносе БД из некоторой СУБД, например Access, в PostgreSql тип данных полей, аналогичных AUTO_INCREMENT, преобразуется в тип integer, что приводит к проблемам при добавлении новых данных. Если перепроетирование БД с вводом новых полей типа serial не представляется целесообразным, что обычно имеет место, то следует выполнить замену типа таких полей с integer на serial.
Однако прямая замена типа поля integer на тип serial в свойствах поля в PgAdmin III недоступна.
Для перевода в PgAdmin III типа поля integer в serial или bigserial следует сначала для требуемого ключевого поля таблицы создать последовательность (Sequence), в которой задать закон приращения значений последовательности. Имя последовательность формируется, как правило по схеме “таблица_колонка_seq”. Для таблицы Groups получим Groups_GrNo_seq.
Рисунок 2.16 – Настройка новой последовательности
Эта последовательность сохраняется.
Рисунок 2.17 – Сохраненные последовательности
Далее формируем SQL-запрос на изменение типа
ALTER TABLE "Groups"
ALTER COLUMN "GrNo" SET DEFAULT nextval('"Groups_GrNo_sec"')
и выполняем его (рисунок 2.18)
Рисунок 2.18 – Сохраненные последовательности
Теперь в свойствах колонки можно увидеть, что задано значение по умолчанию (рисунок 2.18)
Рисунок 2.19 – В поле Значение по умолчанию задана требуемая последовательность
– Конец работы –
Эта тема принадлежит разделу:
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ... КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ... РАБОТА З СУБД PostgreSQL...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Особенности первичных ключей в PostgreSql
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов