|
автоиндексирование нескольких таблиц
|
|||
---|---|---|---|
#18+
Народ, помогите плиз, решить одну проблемму. 1) Есть несколько таблиц с уникальным первичным ключом в каждой, необходимо с помощью триггера для каждой таблице реализовать следующее действие: при вставке новой строки (одиночной) в таблицу триггер присваивает первичному ключу уникальный номер, но этот номер должен быть взят из определенного массива чисел (очень большого), затем при заполнении следующей таблице из этого же массива берётся ещё один номер. Таким образом в каждой таблице будут свои уникальные номера не повторяющиеся с другими таблицами. 2) Имеется итоговая таблица в которой три столбца - составной ключ. Первый столбец ввожу я, второй тоже я - уникальный номер строки из пункта 1, а третий столбец должен заполнить сам триггер, в нём должно находится имя таблицы которому принадлежит данный уникльный номер из второго столбца. К сожалению мои познания в SQL ещё очень малы, поэтому буду очень признателен за рабочее решение данной задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2002, 02:51 |
|
автоиндексирование нескольких таблиц
|
|||
---|---|---|---|
#18+
Используй SEQUENCE как генератор первичных ключей. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2002, 08:12 |
|
автоиндексирование нескольких таблиц
|
|||
---|---|---|---|
#18+
Спасибо за ответ. С последовательность я вроде разобрался, но теперь стоит другая проблемма: Как можно присвоить новое значение этой последовательности столбцу таблицы. У меня пока такой вариант, но он не рабочий. :( --Создаём последовательность Create Sequence posledovat Increment By 1 Start With 1 NoMaxValue NoCycle; --Создаём триггер Create Trigger Dollar Before Insert On Валюта For Each Row Begin Select posledovat.Nextval INTO :new.ID_валюты From Валюта; END Dollar; / Так написано (про триггер) в примере, но естественно когда в таблице >= 2 строк, то этот триггер не работает, т.к. Select выделяет все строки. Поэтому ВОПРОС: как присвоить полученное значение из последовательности конкретному столбцу. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2002, 02:23 |
|
автоиндексирование нескольких таблиц
|
|||
---|---|---|---|
#18+
не Код: plaintext 1.
а Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2002, 12:37 |
|
|
start [/forum/topic.php?fid=52&fpage=2831&tid=1992670]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
107ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 383ms |
total: | 569ms |
0 / 0 |