![]() |
|
Модераторы: 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 |
ну я вообще считаю что в это задаче копирование раз в месяц ни к чему.. это конечно гуд, но на мой взгляд использовать это надо в основном для архиваций и других вещей которые не связаны с основным процессом работы программы (могут быть исключения, но это не тот случай). Во всяком случае на данном этапе знакомства с задачей у меня такое мнение |
|||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: нет Всего: 15 |
так компы разные... май бананас - 3р огурец - 5р помидор - 7р июнь огурец - 5р помидор - 8р июль тыква - 15р как тут триггер на апдейт использовать? спасибо, но, наверное, оставлю как есть... я думал может просто есть какой-нибудь элегантный и не сложный способ в БД... у меня все даты представляют из себя 1-е числа месяца... |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 37 Всего: 161 |
-------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| azesmcar |
|
||||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 3 Всего: 211 |
Я бы хранил так
например повысили цены на банан, после этого таблица будет иметь следующий вид
Когда показываем цены - выбираем те, у которых дата больше с помощью группировки. |
||||||
|
|||||||
| Zloxa |
|
||||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 37 Всего: 161 |
Kbl4AH, Советую таки потратить время и изучить.... Это и есть "элегантный и не сложный" способ куда уж проще?:
И будет у тебя оно работать первого числа каждого месяца в час ночи. Только посмотри что у тебя в JOB_QUEUE_PROCESSES написано Добавлено через 7 минут и 56 секунд Блин, сорри... когда увидил цифру 7, не обратил внимание где запятая стоит, думал семерка относится к делфе..... Не знаю есть ли жоб в семере... Наверняка есть... но так же ли работает... не знаю :(( Это сообщение отредактировал(а) Zloxa - 7.5.2009, 11:20 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
||||
|
|||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: нет Всего: 15 |
Zloxa, azesmcar, DimW, Роман, спасибо!
|
|||
|
||||
![]()
|
| Правила форума "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. |