Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Возможно ли? / 11 сообщений из 11, страница 1 из 1
01.07.2005, 14:25
    #33145172
Демиург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли?
Господа стало интересно:

Возможно ли такое? Например вводятся какие либо данные в таблицу. Возможно ли такое, чтоб два пользователя одновременно начали вносить данные, и произошло следующее: Например значение первичного ключа должно стать "Х". Так как оба пользователя создают запись одновременно то их записям должен быть присвоен один и тот же АйДи.

Если да, то как с этим бороться? Или все это бред сивой кабылы? ))

спасибо
...
Рейтинг: 0 / 0
01.07.2005, 14:26
    #33145176
KSLcom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли?
Бред
...
Рейтинг: 0 / 0
01.07.2005, 14:39
    #33145210
Демиург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли?
То есть пользователи не могут получить один и тот же ай ди, даже если обратились г генератору этого АйДи одновременно?
...
Рейтинг: 0 / 0
01.07.2005, 14:43
    #33145223
Станислав C.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли?
ДемиургТо есть пользователи не могут получить один и тот же ай ди, даже если обратились г генератору этого АйДи одновременно?
Получить-то могут, только вот записать в базу данных не смогут: после получения ID вступает в действие "защита" (всякие триггеры и констрэйны) по проверке первичных ключей и др. возможных конфликтов...
...
Рейтинг: 0 / 0
01.07.2005, 14:45
    #33145230
Va1entin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли?
Вообще-то назначение идентификатора в разных
базах реализуется по-разному. Есть базы, в которых
нет автоматически генерируемого identity,
а есть уникальные ключи и секвенции или генераторы
последовательностей для ключей.
И всё это существует для задания уникальных
идентификаторов, хотя и называется по разному.

Точнее сформулируйте вопрос.

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
01.07.2005, 14:51
    #33145246
Демиург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли?
Так. Сейчас попытаюсь

В конечном счете меня интересует: может ли возникнуть ситуация, при которой в таблице будут существовать две записи с одинаковыми значениями ключевых полей (Хотя понимаю что не могут, тк СУБД просто не позволит вставить запись с неуникальным ключём). Поэтому и спросил насчет "одновремеено".

Т.е. даже если пользователи получат из последовательноси/автоинкремента/итд одино и то же значени ключа, смогут ли они его вставить в базу?
...
Рейтинг: 0 / 0
01.07.2005, 14:54
    #33145259
Va1entin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли?
Они не получат одно и то же значение ключа.

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
01.07.2005, 15:03
    #33145293
Демиург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли?
Спасибо

A если я допустим напишу хранимую процедуру (ну типа MAX(ID)+1, конечно может быть и что то другое), то она может и вернуть. Не так ли?
...
Рейтинг: 0 / 0
01.07.2005, 15:06
    #33145309
Va1entin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли?
Если ключ уникальный, то дублирование не произойдёт гарантированно.

А лучше используйте identity, секвенцию или генератор.

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
02.07.2005, 09:31
    #33146240
Dik76
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли?
Va1entin

V> А лучше используйте identity, секвенцию или генератор.

Не просто лучше, а именно так и не каких max+1

--
Dik76

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
02.07.2005, 13:05
    #33146295
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли?
Вариант с max+1 МОЖЕТ использоваться, но нужно в транзакции чтение-занесение использовать блокировку таблицы на чтение. Что может оказаться неудобным, если пользователи интенсивно читают таблицу.

Разумеется этот метод не стоит применять для генерации первичного ключа, если СУБД любым способом поддерживает автоинкременентные поля.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Возможно ли? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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