powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
25 сообщений из 32, страница 1 из 2
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37603579
Если нужен автоинкремент по одной таблице то что лучше использовать SEQUENCE, IDENTITY , SERIAL или AUTOINCREMENT?
Допустим я использовал для:
1. MSSQL - IDENTITY
2. MYSQL - AUTOINCREMENT
3. ORACLE - SEQUENCE + trigger
4. FIREBIRD - SEQUENCE + trigger
5. POSTGRESQL - SEQUENCE + trigger (но он же поддерживает и SERIAL)
Кстати, в чем различие IDENTITY, SERIAL и AUTOINCREMENT?

Чем от них отличается SEQUENCE понятно - это сквозная нумерация по 1 и более таблиц, но чем он лучше остальных способов не понятно и не очень красиво выглядит триггер с ним на каждую таблицу.
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37603587
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SEQUENCE vs IDENTITY4. FIREBIRD - SEQUENCE + trigger

Не нравится писать собственные триггера - используй AUTOINCREMENT, сервер нужный триггер
сам создаст.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37603599
SEQUENCE MS SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторДопустим я

1. MSSQL - SEQUENCE + DEFAULT CONSTRAINT

авторпо одной таблице ... на каждую таблицу

Вы, уж, определитесь в постановке задачи...
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37603625
SEQUENCE MS SQLавторДопустим я

1. MSSQL - SEQUENCE + DEFAULT CONSTRAINT

авторпо одной таблице ... на каждую таблицу

Вы, уж, определитесь в постановке задачи...
http://msdn.microsoft.com/en-us/library/ff878091(v=SQL.110).aspx
SEQUENCE появиться только в SQL Server 2012. И что значит DEFAULT CONSTRAINT? В SQL Server 2012 можно будет SEQUENCE писать в DEFAULT и он сам будет автоинкремениться при инсертах?
К слову в Oracle, Firebird и PostgreSQL так сделать нельзя, нужен обязательно триггер.

Постановки задачи как таковой нет - есть необходимость разобраться в каком случае что лучше?
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37603628
Фотография Warstone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SEQUENCE vs IDENTITY5. POSTGRESQL - SEQUENCE + trigger (но он же поддерживает и SERIAL)SERIAL + DEFAULT в INSERT'е. Это не создает триггера.
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37603631
Ы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ы
Гость
К слову в Oracle, Firebird и PostgreSQL так сделать нельзя, нужен обязательно триггер.
В PostgreSQL триггер не нужен: там есть псевдотип serial, который сам (почти) все делает. При создании колонки, напр., id serial будет создана последовательность, из которой автоматически будут браться значения. Технически это будет id default nextval('sequence_name').
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37603634
SEQUENCE MS SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SEQUENCE vs IDENTITYВ SQL Server 2012 можно будет SEQUENCE писать в DEFAULT и он сам будет автоинкремениться при инсертах?

http://msdn.microsoft.com/en-us/library/ff878370(v=sql.110).aspx Example D

SEQUENCE vs IDENTITYПостановки задачи как таковой нет

Когда будет - приходите...
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37603639
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SEQUENCE vs IDENTITYно чем он лучше остальных способов не понятноТем что это механизм генерации уникальных id не привязанный к таблицам и полям.
SEQUENCE vs IDENTITY не очень красиво выглядит триггер с ним на каждую таблицу. А явно в инсерте sequence.nexval прописать религия не позволяет?
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37603640
SEQUENCE MS SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257А явно в инсерте sequence.nexval прописать религия не позволяет?

Когда программисту надоедает работать руками - он начинает работать головой. ((с) Не моё)
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37603869
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SEQUENCE vs IDENTITYЧем от них отличается SEQUENCE понятно - это сквозная нумерация по 1 и более таблиц, но чем он лучше остальных способов не понятно
Возможность "оторвать" значение от таблицы даёт свободу манёвра, позволяющую легче реализовывать некоторую функциональность. Типовые варианты использования:

Создание/редактирование на клиенте мастер-детальных данных без длинных транзакций

Сквозная нумерация однородных сущностей, распределённых по нескольким таблицам

Генерация номеров документов

Извращения типа "обойти номера записей, вставленных руками"

SEQUENCE vs IDENTITY и не очень красиво выглядит триггер с ним на каждую таблицу.
Это да. Какого хрена ещё во времена какого-нибудь Oracle 7 не сделали DEFAULT SEQ_NAME.NEXTVAL, я не понимаю и вряд ли пойму.
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37603871
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257А явно в инсерте sequence.nexval прописать религия не позволяет?
У такого решения есть изрядные недостатки с точки зрения качества кода.
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37607711
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> У такого решения есть изрядные недостатки с точки зрения качества кода.

а переключение контекста в триггере это хорошее качество кода? Каков по Вашему мнению тогда лучший способ вызова nextval в Oracle?
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37607890
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shtockа переключение контекста в триггере это хорошее качество кода?
Переключение контекста - это вопрос производительности. К качеству кода (в том смысле, в котором обычно понимается это слово) это отношения не имеет.

ShtockКаков по Вашему мнению тогда лучший способ вызова nextval в Oracle?
Зависит от контекста. В разных ситуациях я их использовал пожалуй что все которые могу придумать, и каждый из них обладает недостатками, позволяющими легко построить контрпример "когда этот способ явно не лучший".
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37607922
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я, например, очень полюбил nextval прямо в select, когда использую insert all. Там без него плохо....
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37607925
ShtockЯ, например, очень полюбил nextval прямо в select, когда использую insert all. Там без него плохо....
Для вставки из запросов в таблицы связанные по FK?
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37607926
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerЗависит от контекста. В разных ситуациях я их использовал пожалуй что все которые могу придумать, и каждый из них обладает недостатками, позволяющими легко построить контрпример "когда этот способ явно не лучший".
здесь играем, здесь не играем, а тут мы рыбу заворачивали (с)
и это в контексте качества кода !?
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37607950
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!, не приходило ли Вам когда-нибудь в голову, что, например, ETL-загрузка данных, OLTP с процедурной оболочкой над таблицами и, например, толстенный клиент вообще без логики на сервере - это немного разные контексты (не говоря уже о том, что часто разные проекты и разные заказчики), и применять в них один универсально плохой метод будет только... ну в общем кое-кто и будет.
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37608357
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>связанные по FK - аха, именно для их. Для моих задач обычное дело когда одним инсертом данные уходят в 3-6 таблиц.
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37608589
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerи применять в них один универсально плохой метод будет только... ну в общем кое-кто и будет.

буквально на днях наблюдал базу от InterBase 4.0. Там несколько генераторов инкрементируются в
- некоторые только в триггерах
- некоторые только в процедурах
- некоторые одновременно в нескольких триггерах (для разных таблиц)
- некоторые ни в триггерах, ни в процедурах (а только в приложении), т.е. по базе их назначение понять нельзя.

я понимаю, что это все разные методы использования генераторов. Но не понимаю, зачем разработчику потребовалось городить такую кашу.
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37608810
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvя понимаю, что это все разные методы использования генераторов. Но не понимаю, зачем разработчику потребовалось городить такую кашу.
Не понимаете - значит, вполне вероятно, зря городил. С другой стороны, например, в первый раз я отступил от принятой в конторе практики генерации id в триггерах, когда требовалось массово грузить в приложение некие данные со стороны, и отказ от этих триггеров увеличил скорость загрузки в пять-десять раз. Полагаете, был неправ?
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37623223
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Informix используется Serial, можно еще Sequence, но когда есть Serial зачем использовать что то еще (если нужны последовательные значения)? Не надо городить триггеры, все просто - объявил поле Serial и получай готовые значения.
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37623256
Andron , вполне логично. А насколько скорость serial отличается от аналогичной через SEQUENCE + trigger или SEQUENCE в INSERT-запросе?

softwarerkdvя понимаю, что это все разные методы использования генераторов. Но не понимаю, зачем разработчику потребовалось городить такую кашу.
Не понимаете - значит, вполне вероятно, зря городил. С другой стороны, например, в первый раз я отступил от принятой в конторе практики генерации id в триггерах, когда требовалось массово грузить в приложение некие данные со стороны, и отказ от этих триггеров увеличил скорость загрузки в пять-десять раз. Полагаете, был неправ?
1. Отключили триггеры и импользовали SEQUENCE в инсертах?
2. Или вообще отказались от SEQUENCE?
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37624094
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SEQUENCE vs IDENTITY1. Отключили триггеры и импользовали SEQUENCE в инсертах?
2. Или вообще отказались от SEQUENCE?
Отключил триггеры, сделал сиквенсам increment by 1000 и формировал данные для direct load-а.
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37624187
softwarerSEQUENCE vs IDENTITY1. Отключили триггеры и импользовали SEQUENCE в инсертах?
2. Или вообще отказались от SEQUENCE?
Отключил триггеры, сделал сиквенсам increment by 1000 и формировал данные для direct load-а.
Т.е. в интервалах по 1000 нумеровали уже сами?
А установить кэш не пробовали ALTER SEQUENCE seq CACHE 2000; или вообще нумеровать самому без сиквенсов через оконные функции?
...
Рейтинг: 0 / 0
SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
    #37624200
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SEQUENCE vs IDENTITYТ.е. в интервалах по 1000 нумеровали уже сами?
Да.

SEQUENCE vs IDENTITYА установить кэш не пробовали
А смысл? Кэш регулирует быстродействие сервера, а целью в данном случае было избежать огромного количества тупых синхронных запросов к серверу "за айдишниками".

SEQUENCE vs IDENTITYили вообще нумеровать самому
А нафига такое счастье?
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / SEQUENCE vs IDENTITY vs SERIAL vs AUTOINCREMENT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]