|
Один и тот же ID в двух разных таблицах
|
|||
---|---|---|---|
#18+
Здравствуйте! Прошу сильно не пинать, так как делетант в АйБи. Прошу объяснить, как и что нужно создать, чтобы при добавлении записи ID в таблице №1 со значением 1, создавалась такая же запись с идентичным ID в таблице №2 . Я сделал так: В первой таблице создал Генератор и Триггер с автоинкрементном +1. попытался добавить во второй таблице такое же поле: use exiting generator (выбрал генератор из таблицы №1) но при добавлении записи в первой таблице, во второй таки ничего не меняется и не появляется. что нужно поставить во второй? Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2014, 19:58 |
|
Один и тот же ID в двух разных таблицах
|
|||
---|---|---|---|
#18+
Нужно создать два триггера: Триггер BEFORE INSERT для первой таблицы, где проверять, если "ключевое" поле IS NULL то получать ID с помощью генератора. И триггер AFTER INSERT для первой таблицы, в котором делать вставку во вторую таблицу, используя OLD.KEYFIELD первой таблицы для занесения этого ID. Первый триггер IBExpert может создать автоматически, надо только поставить NotNull и AutoInc для поля, и указать/создать генератор. А второй триггер написать "руками". ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2014, 20:23 |
|
Один и тот же ID в двух разных таблицах
|
|||
---|---|---|---|
#18+
Kotъ-Begemotъ, Имеем следующую структуру таблиц: TABLE1 ID_TABLE1 - АИ +1 TABLE2 ID_TABLE2 - integer, not null Написал вот такой триггер №2 для первой таблицы: (триггер №1 АИ) Имя: TABLE2_AI0 Для таблицы: TABLE1 Тип: After Код: plsql 1. 2. 3. 4. 5.
при компиляции выводится ошибка: Column does not belong to referenced table. Dynamic SQL Error. SQL error code = -206. Column unknown. NEW.ID_TABLE2 . At line 5, column 13. Очевидно, что компилятор не может понять, где эта колонка "NEW.ID_TABLE2", попытался ЯВНО указать на таблицу: Код: plsql 1. 2. 3. 4. 5.
но и тут меня поджидала неудача: Invalid token. Dynamic SQL Error. SQL error code = -104. Token unknown - line 5, column 19. . ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2014, 04:18 |
|
Один и тот же ID в двух разных таблицах
|
|||
---|---|---|---|
#18+
MocArt, не следует темы дублировать в разных форумах, тем более тут не в тему. В IB/Firebird-разделе уже создал ведь обсуждение... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2014, 09:37 |
|
Один и тот же ID в двух разных таблицах
|
|||
---|---|---|---|
#18+
MocArt, в триггере на таблицу SOMETABLE с помощью префиксов OLD и NEW можно ссылаться только на поля ЭТОЙ же самой таблицы. IBExpert сам генерит триггер на BI который берёт значение "автоинкрементного" поля из генератора. А "руками" написать надо что-то типа этого (триггер на BI для TABLE1) Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2014, 09:57 |
|
Один и тот же ID в двух разных таблицах
|
|||
---|---|---|---|
#18+
Пардон, на After Insert, вот так: А "руками" написать надо что-то типа этого (триггер на AI для TABLE1) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2014, 09:59 |
|
Один и тот же ID в двух разных таблицах
|
|||
---|---|---|---|
#18+
Не понял, в чем загвоздка, вроде все просто. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2014, 10:07 |
|
|
start [/forum/topic.php?fid=42&msg=38652757&tid=1599705]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 310ms |
total: | 456ms |
0 / 0 |