|
|
|
Один триггер для нескольких таблиц
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Есть много таблиц, каждая со своим набором данных, и в каждой присутствуют поля id(Binary(16)) и addDate(DateTime). При вставке данных эти поля должны заполнятся автоматически значениями UNHEX(REPLACE(UUID(), '-', '')) и NOW() соответственно. Очень не хочется писать на каждую таблицу триггеры с одинаковым содержанием, есть ли альтернативные пути? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 16:34:27 |
|
||
|
Один триггер для нескольких таблиц
|
|||
|---|---|---|---|
|
#18+
Для первого поля других вариантов нет, насколько я в курсе. Если только полностью отказаться от UUID-ов и перейти на автоинкремент. Для второго поля можно попробовать использовать тип TIMESTAMP . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 16:40:34 |
|
||
|
Один триггер для нескольких таблиц
|
|||
|---|---|---|---|
|
#18+
miksoftДля второго поля можно попробовать использовать тип TIMESTAMP . TIMESTAMP не подходит, нужна дата, не зависящая от часового пояса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 16:45:52 |
|
||
|
Один триггер для нескольких таблиц
|
|||
|---|---|---|---|
|
#18+
windandrainmiksoftДля второго поля можно попробовать использовать тип TIMESTAMP . TIMESTAMP не подходит, нужна дата, не зависящая от часового пояса.У вас разные клиенты в разных часовых поясах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 17:04:53 |
|
||
|
Один триггер для нескольких таблиц
|
|||
|---|---|---|---|
|
#18+
miksoftУ вас разные клиенты в разных часовых поясах? Да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 17:26:14 |
|
||
|
Один триггер для нескольких таблиц
|
|||
|---|---|---|---|
|
#18+
windandrainmiksoftУ вас разные клиенты в разных часовых поясах? ДаНу тогда либо явно переводить дату в нужный часовой пояс, либо DateTime и триггер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 17:33:29 |
|
||
|
Один триггер для нескольких таблиц
|
|||
|---|---|---|---|
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 18:13:30 |
|
||
|
Один триггер для нескольких таблиц
|
|||
|---|---|---|---|
|
#18+
windandrainЗдравствуйте. Есть много таблиц, каждая со своим набором данных, и в каждой присутствуют поля id(Binary(16)) и addDate(DateTime). При вставке данных эти поля должны заполнятся автоматически значениями UNHEX(REPLACE(UUID(), '-', '')) и NOW() соответственно. Очень не хочется писать на каждую таблицу триггеры с одинаковым содержанием, есть ли альтернативные пути? Варианты: напиши 20 триггеров, из триггеров вызывай процедуру, где всё и делай. Напиши маленькую программку - генератор триггеров, например, на python + cheetah (т.е. фактически на cheetah, но там если что внутри надо программного писать -- это python). И все триггера сгенерируй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 20:04:16 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38539346&tid=1835329]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
8ms |
get forum data: |
1ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 324ms |

| 0 / 0 |
