|
|
|
ОбЪясните, как сделать в БД "IB"
|
|||
|---|---|---|---|
|
#18+
Есть в базе поле, скажем "сounts" типа "intenger". Мне нужно чтоб при вставке новой записи в этом поле было уникальное число. Как я понял мне нужно сделать генератор, и потом сделать триггер на событии "Before Post" чтоб в определенное поле гененрировалось число. Сделал генератор: CREATE GENERATOR GEN_Count_ID; SET GENERATOR GEN_Count_ID TO 0; А как сделать триггер, и чтоб все работало? Если можно подскажите подробней, пожалуйста. P.S. Для доступа к редактированию БД, пользуюсь IB Expert 2.0.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2003, 11:51 |
|
||
|
ОбЪясните, как сделать в БД "IB"
|
|||
|---|---|---|---|
|
#18+
create trigger MYTABLE_BI for MyTable before insert as begin NEW.COUNTS = GEN_ID(GEN_Count_ID,1); end ОБ остальном советую почитать руководство все-таки :) И я бы рекомендовал тело как begin if (NEW.COUNTS is NULL) then NEW.COUNTS = GEN_ID(GEN_Count_ID,1); end Более управляемо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2003, 12:25 |
|
||
|
ОбЪясните, как сделать в БД "IB"
|
|||
|---|---|---|---|
|
#18+
создаешь триггер: set term !!; create trigger ИМЯ_ТРИГГЕРА for ИМЯ_ТАБЛИЦЫ before insert position 0 as begin IF (new.ИМЯ_ПОЛЯ IS NULL) THEN new.ИМЯ_ПОЛЯ = GEN_ID(ИМЯ_ТВОЕГО_ГЕНЕРАТОРА, 1); end !! set term ; !! и все - теперь поле ИМЯ_ПОЛЯ инкрементное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2003, 12:29 |
|
||
|
ОбЪясните, как сделать в БД "IB"
|
|||
|---|---|---|---|
|
#18+
Сделал триггер: AS begin IF (new.DOC_ID IS NULL) THEN new.DOC_ID = GEN_ID(GEN_DOC_ID, 1); end Где: - DOC_ID - поле в БД; - GEN_DOC_ID - название генератора; Сохранил все, и попробывал создать в БД через программы свою новую запись, и поле не изменилось, на всех записях стоит число "0". Мне нужно в коде программы внести изменения или нет? Пишу на С++ В. использую компонент "IBDataSet1". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2003, 13:02 |
|
||
|
ОбЪясните, как сделать в БД "IB"
|
|||
|---|---|---|---|
|
#18+
Ты сделал вставку со значением поля 0, а не NULL, убери if ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2003, 13:08 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32357744&tid=1579474]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
159ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 451ms |

| 0 / 0 |
