|
1 / 1 / 5
Регистрация: 30.04.2007
Сообщений: 225
|
|
Уникальность идентификаторов в нескольких таблицах.06.05.2008, 23:58. Показов 2038. Ответов 9
Метки нет (Все метки)
Стоит задача: при вставке записей порождать целочисленные primary key, уникальные для нескольких (!!) таблиц. В оракле это решалось порождением ключей из одной и той же последовательности, а вот когда пришлось переползать на mssql2000, возникли трудности... Может быть всё же существует изящное решение? (неизящно уже сделали)
0
|
|
| 06.05.2008, 23:58 | |
|
Ответы с готовыми решениями:
9
Поменять значения идентификаторов в нескольких таблицах циклом хранение нескольких идентификаторов для одного элемента БД Удаление в нескольких таблицах |
|
ex
|
||||||
| 07.05.2008, 15:55 | ||||||
|
Не знаю уж насколько решение покажется изящным..
![]() Пусть у Вас N таблиц, для которых Вы хотите обеспечить уникальность первичных ключей, тогда:
|
||||||
|
3 / 3 / 1
Регистрация: 06.11.2007
Сообщений: 75
|
|
| 28.05.2008, 18:28 | |
|
Можно сделать лучше. Два варианта:
1- сделать дополнительную таблицу с одним полем типа LastID и процедуру, кот. будет возврашать следующий ID и изменять значение в таблице. Но, есть в SQL 2000 user-defind функции. Т.е. можно написать ф-цию выч. значение следующего ID. На том же T-SQL.
0
|
|
|
ex
|
|
| 28.05.2008, 18:30 | |
|
Чем же это лучше???
Зачем дополнительные действия? Тем более таблицы.. функции... |
|
|
3 / 3 / 1
Регистрация: 06.11.2007
Сообщений: 75
|
|
| 28.05.2008, 18:39 | |
|
Лучше тем, что при интенсивном использовании таблиц в вашем случае быстрее будет достигнут верхний предел ID в одной из таблиц и тогда потеряется целостность базы. В то время как в моем варианте интенсивность использования может быть разная и целостность не утратиться (в функции можно сгенерировать ошибку переполнения).
0
|
|
|
ex
|
|
| 28.05.2008, 18:46 | |
|
Тип int может принимать значения вплоть до 2^31 - 1 (2147483647).
Тип bigint - до 2^63-1 (9223372036854775807). Достигнуть верхнего предела нам не грозит!! P.S. Насчет того, что 'в функции можно сгенерировать ошибку переполнения'... Чем она (сгенеренная Вами) лучше той, которую выкинет сам SQL-Server, если вдруг всё-таки кончатся свободные значения?
|
|
|
3 / 3 / 1
Регистрация: 06.11.2007
Сообщений: 75
|
|
| 28.05.2008, 18:54 | |
|
Прошу прощения...
Забыл синтаксис IDENTITY... Посмотрел - все понял... Ваш вариант действительно лучше. Просто я не люблю поля IDENTITY.
0
|
|
|
ex
|
|
| 28.05.2008, 19:03 | |
|
Как их можно любить или не любить?
)Это все равно, что не любить первичные ключи.. За что?... |
|
|
3 / 3 / 1
Регистрация: 06.11.2007
Сообщений: 75
|
|
| 28.05.2008, 19:12 | |
|
Ну, просто я ими (IDENTITY) никогда не пользуюсь...
0
|
|
|
1 / 1 / 5
Регистрация: 30.04.2007
Сообщений: 225
|
|
| 31.05.2008, 00:05 [ТС] | |
|
Спасибо. Видимо, более изящного решения нет. В моём случае была написана процедура, порождающая новый ключ из дополнительной таблицы с identity-полем.
0
|
|
| 31.05.2008, 00:05 | |
|
Помогаю со студенческими работами здесь
10
Поиск в нескольких таблицах Фильтрация данных в нескольких таблицах Поиск данных в нескольких таблицах Посик по сайту в нескольких таблицах Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|