|
|
|
|
|
для: dimm_kz
(26.08.2009 в 09:27)
| | К сожалению, как показала практика, при активном поступлении данных в базу, имея 2 тригера на обработку, MySQL падает... сэляви... | |
|
|
|
|
|
|
|
для: Valick
(25.08.2009 в 17:36)
| | Гаспада! ну просто огромное вам спасибо! на свежую голову и с вчерашней влитой информацией все пришло само!!! Возможно тригеры не самый лучший вариант реализации, но сейчас он работает и это главное! возможнов дальнейшем всем этим безобразием и будет рулить Иван Михалыч Крон, но пока так))))))))
Для тех кому интересна реализация вот:
CREATE DEFINER=`root`@`localhost` TRIGGER `base1`.add BEFORE INSERT
ON raw20090821
FOR EACH ROW
begin
INSERT INTO `base2`.`stat200908` VALUES (NEW.`ipin`, NEW.`ipout`, NEW.`portin`, NEW.`portout`, NEW.`in`, NEW.`out`)
ON DUPLICATE KEY UPDATE
`in` = NEW.`in` + `in`,
`out` = NEW.`out` + `out`;
end
|
Это при реализации составного первичного ключа полей ipin и ipout | |
|
|
|
|
|
|
|
для: Valick
(25.08.2009 в 17:36)
| | Ребят, спасибо за дискусии, завтра продолжем, сегодня хэд уже не тот! Спасибо еще раз! | |
|
|
|
|
|
|
|
для: Valick
(25.08.2009 в 17:36)
| | База1 и база 2 сейчас идентичны, да. Но это только пока я учусь, на самом деле у нетфло очень много полей, а из них мне много не надо | |
|
|
|
|
|
|
|
для: Valick
(25.08.2009 в 17:21)
| | Имеем те же самые две цистерны (база1 и база2)
В цистерну номер один капает ложка эмульсии, вторая, третья.. стопятьдесятвторая... и тд.
В это время Иван Михалыч Крон сидит курит, да поглядывает на часы
Звенит будильник и дядя Ваня, нажимает на кнопку базы1 и песок выпадает в осадок, затем выбрасывает песок,
сливает чистую воду в ведро и несёт в цистерну номер два.
В итоге через месяц(а также после каждой ходки дяди Вани) имеем чистую базу1 и базу2 содержащую чистую
как слеза воду (в принципе, там может и спирт оказаться)
А теперь наша задача как заварившего всю эту байду, добиться того чтобы Иван Михалыч Крон
не шастал туда сюда с полуппорожним ведром или не надорвался половиной цистены. | |
|
|
|
|
|
|
|
для: dimm_kz
(25.08.2009 в 16:00)
| | Важно ли для программиста образное мышление?
Может у меня слишком бурная фантазия, но вот что я вижу в вашем варианте.
Имеются две цистерны, назовём их база1 и база2.
В базу 1 капает эмульсия (например вода с песком), предположим объёмом в одну чайную ложку.
Василий Петрович Триггер наблюдая за процессом попадания эмульсии в цистерну номер один, хватает ложку
наливает туда воды, засыпает песка и доводит это дело до состояния эмульсии (грубо говоря создаёт копию).
Затем бежит к цистерне номер два (база2), у которой на входе стоит сепаратор, кидает туда ложку скопированной
эмульсии и нажимает на кнопку. Затем рвёт когти обратно к цистерне номер один.
В итоге через месяц база1 содержит пару тонн говна эмульсии, в базе2 чистая как слеза вода.
Теперь о моём варианте
(продолжение следует)
___
лирическое отступление о шипении
"Вам может показаться, что мы квакаем, на самом деле песню мы поём" | |
|
|
|
|
|
|
|
для: dimm_kz
(25.08.2009 в 16:09)
| | я не предлагал делать праймэри один из них.
Можно сделать составной первичный ключ.
Соответственно, ключом будет 192.168.2.2 - 10.40.40.2 | |
|
|
|
|
|
|
|
для: dimm_kz
(25.08.2009 в 16:09)
| | ipin остается неменяемым, а ipout меняется
но как одно целое, то они уникальны?
Трианон, если не ошибаюсь, говорил о первичном ключе на оба поля. | |
|
|
|
|
|
|
|
для: dimm_kz
(25.08.2009 в 16:00)
| | если мне сказали что не может 2 INSERT делать, то и вопросов я больше не задавал...
а я вот задаю и хочу разобраться в этом.
2 INSERT - речь я так понимаю идёт о инсёрте в одну базу и невозможности повторить этот инсёрт во вторую базу, так?
Я всего лишь пристебался к вашему триггеру только лишь потому что он срабатывает по инсёрту, если бы речь шла о зеркале базы, то никаких вопросов, но это не ваш случай.
Если бы вы стартовали триггер по другому условию (например каждые 1000 инсёртов), то я бы тоже почти не задавал вопросов.
Давайте на пальцах (в лучшем смысле этого слова) поговорим.
в базу 1 летят данные (неважно откуда), назовём их "пакет1"
теперь скажите что делает ваш триггер?
пока, что я вижу, что он кидает этот "пакет1" в базу2 | |
|
|
|
|
|
|
|
для: Trianon
(25.08.2009 в 16:04)
| | ipin и ipout не могут быть примари, т.к. ... просто пример: пошел пользователь с ip 192.168.2.2 на ip 10.40.40.2, потом пошел на ip 10.40.40.5, потом на ip 10.40.40.28, ipin остается неменяемым, а ipout меняется | |
|
|
|
|