Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Работа с триггерами

Сообщения:  [1-10]    [11-20]   [21-30]  [31-37] 

 
 автор: dimm_kz   (21.01.2010 в 09:26)   письмо автору
 
   для: dimm_kz   (26.08.2009 в 09:27)
 

К сожалению, как показала практика, при активном поступлении данных в базу, имея 2 тригера на обработку, MySQL падает... сэляви...

  Ответить  
 
 автор: dimm_kz   (26.08.2009 в 09:27)   письмо автору
 
   для: 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

  Ответить  
 
 автор: dimm_kz   (25.08.2009 в 17:48)   письмо автору
 
   для: Valick   (25.08.2009 в 17:36)
 

Ребят, спасибо за дискусии, завтра продолжем, сегодня хэд уже не тот! Спасибо еще раз!

  Ответить  
 
 автор: dimm_kz   (25.08.2009 в 17:44)   письмо автору
 
   для: Valick   (25.08.2009 в 17:36)
 

База1 и база 2 сейчас идентичны, да. Но это только пока я учусь, на самом деле у нетфло очень много полей, а из них мне много не надо

  Ответить  
 
 автор: Valick   (25.08.2009 в 17:36)   письмо автору
 
   для: Valick   (25.08.2009 в 17:21)
 

Имеем те же самые две цистерны (база1 и база2)
В цистерну номер один капает ложка эмульсии, вторая, третья.. стопятьдесятвторая... и тд.
В это время Иван Михалыч Крон сидит курит, да поглядывает на часы
Звенит будильник и дядя Ваня, нажимает на кнопку базы1 и песок выпадает в осадок, затем выбрасывает песок,
сливает чистую воду в ведро и несёт в цистерну номер два.
В итоге через месяц(а также после каждой ходки дяди Вани) имеем чистую базу1 и базу2 содержащую чистую
как слеза воду (в принципе, там может и спирт оказаться)
А теперь наша задача как заварившего всю эту байду, добиться того чтобы Иван Михалыч Крон
не шастал туда сюда с полуппорожним ведром или не надорвался половиной цистены.

  Ответить  
 
 автор: Valick   (25.08.2009 в 17:21)   письмо автору
 
   для: dimm_kz   (25.08.2009 в 16:00)
 

Важно ли для программиста образное мышление?
Может у меня слишком бурная фантазия, но вот что я вижу в вашем варианте.
Имеются две цистерны, назовём их база1 и база2.
В базу 1 капает эмульсия (например вода с песком), предположим объёмом в одну чайную ложку.
Василий Петрович Триггер наблюдая за процессом попадания эмульсии в цистерну номер один, хватает ложку
наливает туда воды, засыпает песка и доводит это дело до состояния эмульсии (грубо говоря создаёт копию).
Затем бежит к цистерне номер два (база2), у которой на входе стоит сепаратор, кидает туда ложку скопированной
эмульсии и нажимает на кнопку. Затем рвёт когти обратно к цистерне номер один.
В итоге через месяц база1 содержит пару тонн говна эмульсии, в базе2 чистая как слеза вода.
Теперь о моём варианте
(продолжение следует)
___
лирическое отступление о шипении
"Вам может показаться, что мы квакаем, на самом деле песню мы поём"

  Ответить  
 
 автор: Trianon   (25.08.2009 в 17:16)   письмо автору
 
   для: dimm_kz   (25.08.2009 в 16:09)
 

я не предлагал делать праймэри один из них.
Можно сделать составной первичный ключ.
Соответственно, ключом будет 192.168.2.2 - 10.40.40.2

  Ответить  
 
 автор: Valick   (25.08.2009 в 16:38)   письмо автору
 
   для: dimm_kz   (25.08.2009 в 16:09)
 

ipin остается неменяемым, а ipout меняется
но как одно целое, то они уникальны?
Трианон, если не ошибаюсь, говорил о первичном ключе на оба поля.

  Ответить  
 
 автор: Valick   (25.08.2009 в 16:16)   письмо автору
 
   для: dimm_kz   (25.08.2009 в 16:00)
 

если мне сказали что не может 2 INSERT делать, то и вопросов я больше не задавал...
а я вот задаю и хочу разобраться в этом.
2 INSERT - речь я так понимаю идёт о инсёрте в одну базу и невозможности повторить этот инсёрт во вторую базу, так?
Я всего лишь пристебался к вашему триггеру только лишь потому что он срабатывает по инсёрту, если бы речь шла о зеркале базы, то никаких вопросов, но это не ваш случай.
Если бы вы стартовали триггер по другому условию (например каждые 1000 инсёртов), то я бы тоже почти не задавал вопросов.
Давайте на пальцах (в лучшем смысле этого слова) поговорим.
в базу 1 летят данные (неважно откуда), назовём их "пакет1"
теперь скажите что делает ваш триггер?
пока, что я вижу, что он кидает этот "пакет1" в базу2

  Ответить  
 
 автор: dimm_kz   (25.08.2009 в 16:09)   письмо автору
 
   для: 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 меняется

  Ответить  

Сообщения:  [1-10]    [11-20]   [21-30]  [31-37] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования