![]() |
|
Модераторы: LSD |
![]()
|
|
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: нет Всего: 15 |
Здравствуйте, возник следующий вопрос.
Есть таблица которая хранит данные за месяцы... При наступлении нового месяца в таблицу должны вставиться записи с данными из предыдущего месяца... Я делаю так... При старте программы выполняю это:
Но это совсем криво, т.к. программа может быть запущена за месяц до 1000 раз, а вставка записей осуществится только в самый первый раз... Зря только БД напрягаться будет... Возможно ли как-то по-другому решить эту проблему? |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 23 Всего: 44 |
так проблема в чем?
организовать инсерт только один раз? |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 3 Всего: 211 |
1. Удалять из другой таблицы данные после копирования (или устанавливать флаг и обновлять после копирования)
2. Хранить дату последнего копирования где нибудь (например в регистрах) и не запускать если данные уже скопированы Ну а вы что хотели, само копирование уже как-то криво Зачем нужно в базе иметь дубликаты тех же самых записей если не секрет? |
|||
|
||||
| DimW |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 23 Всего: 44 |
|
||||
|
|||||
| Роман |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 279 Регистрация: 9.7.2006 Репутация: нет Всего: 1 |
Может имеется ввиду: кроном запускать скрипт раз в месяц?
-------------------- Жизнь - это последствия от последствий. |
|||
|
||||
| Kbl4AH |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: нет Всего: 15 |
да, оптимально организовать инсерт один раз в месяц...
а где здесь другая таблица?
а в многопользовательском случае?
почему криво? затем что есть, например, перечень позиций и цен на месяц... на новый месяц эти цены тоже нужны и они равны предыдущим, а если несколько цен изменилось, то пользователь их отредактирует... так что не совсем дубликаты получаются, хотя бы потому, что тот же месяц (и иногда цены; и иногда сам перечень может измениться) - различный... |
||||||
|
|||||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 23 Всего: 44 |
||||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 3 Всего: 211 |
я думал в другую копируется - неверно понял HKEY_CURRENT_USER Ясно, но я бы установил тригер на UPDATE цен и дублировал во время изменений. |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 23 Всего: 44 |
||||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: нет Всего: 15 |
DimW, не понял к чему твой код :(
может... я не знаю, вот и спрашиваю... Смысл в том, что у меня запрос и коммит будет выполнятся 1000 (сколько раз стартанет прога) раз за месяц, а я хочу чтобы только один раз... То есть мне нужна, наверное, реализация средствами самой БД, а не моей клиентской программой... то есть наступил новый месяц, данные сами вставились не зависимо от того сколько раз и была ли вообще запущена прога... |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 23 Всего: 44 |
||||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: нет Всего: 15 |
||||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 3 Всего: 211 |
DimW
Ну он же спросил как хранить в регистрах если программа используется разными пользователями. Добавлено через 1 минуту и 36 секунд
ну так они есть для предыдущего..зачем хранить ту же самую строку в базе? как только она изменится, тогда для истории дублируйте старую, а пока цена неизменна нахрена вам ее дублировать? Может я задачу не полностью представляю, но никак не могу представить ситуацию когда это нужно. |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 23 Всего: 44 |
я дал ссылку, изучите ее. просто альтернатива вашим MAX(dt) Добавлено через 2 минуты и 57 секунд
а, имеется ввиду хранение на клиентской стороне. на мой взгляд тоже не ахти. |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 3 Всего: 211 |
ну я вообще считаю что в это задаче копирование раз в месяц ни к чему.. это конечно гуд, но на мой взгляд использовать это надо в основном для архиваций и других вещей которые не связаны с основным процессом работы программы (могут быть исключения, но это не тот случай). Во всяком случае на данном этапе знакомства с задачей у меня такое мнение |
|||
|
||||
![]()
|
| Правила форума "Oracle" | |
|
|
Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Oracle | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |