SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 13.05.2009 20:28:03

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Триггеры - альтернатива InnoDB

Итаг товарисчи, решил отказаться от InnoDB в пользу MyISAM. Но чтобы не загромождать скрипты лишними запросами, решил использовать триггеры. Работаю на 3х системах. 2 локальных компа с разной виндой, но с одинаковым сервером БД + хост на Fedora.

Итаг, на локальном компе создал несколько триггеров, усё прошло гладко, скопировал файлы данных БД на другой локальный комп - работать не захотело. Удалил файлы триггеров, создал триггеры вручную с помощью SQL - не работают. Такое ощущение, что их нет, но вроде есть, заново не создаются, система ругается. Что интересно, заметил разницу. На первом компе в файлах данных БД были созданы файлы с расширением TRN, содержащий ссылку на таблицу, к которой привязан триггер, но на втором компе такие файлы не создались. Почему - не знаю. Возможно, причина в этом? Но сами сервера БД одни и те же - с одного компа сливал на другой, все настройки те же.

Вопрос номер два smile Проверил как это всё работает на хосте. Собссно хост и есть конечное место "жительства" данной системы. Там вообще получил матюк: #1436 - Thread stack overrun:  5032 bytes used of a 131072 byte stack, and 131072 bytes needed.  Use 'mysqld -O thread_stack=#' to specify a bigger stack. Не совсем понимаю куда ткнуть носом хостера и можно ли вообще smile


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#2 14.05.2009 16:00:47

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Триггеры - альтернатива InnoDB

Триггеры хранятся в специальной табличке в базе mysql, поэтому при бинарном копировании файликов они
не копируются. И Вы ничего не сказали про версию на федоре, она такая же?

Неактивен

 

#3 14.05.2009 16:25:05

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Триггеры - альтернатива InnoDB

Но я ведь потом запросами заново создал все триггеры, но их активности не наблюдалось при их наличии smile

На Федоре сервер другой, но тоже не старый - 5.0.77. На локалках стоит 5.0.6-beta.


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#4 14.05.2009 16:57:12

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Триггеры - альтернатива InnoDB

Поставьте 5.0.77 или копируйте данные через текстовые дампы. Никто не гарантирует, что
а) если у Вас и правда столь старая версия, как 5.0.6, что она хоть сколь нибудь стабильна
б) если у Вас бета 5.1+, то обратной бинарной совместимости тоже, скорее всего, нет.

Неактивен

 

#5 14.05.2009 22:53:31

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Триггеры - альтернатива InnoDB

По файлам с расширением TRN мысли есть? smile Ведь на одном из серверов 5.0.6 всё работало так, как было задумано.

Отредактированно Neval (14.05.2009 22:54:38)


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#6 15.05.2009 13:52:48

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Триггеры - альтернатива InnoDB

TRN == trigger names
TRG == trigger definitions

Что Вас в них не устраивает? smile Все работало так, как было задумано, на том сервере, на котором
Вы создавали базы и триггеры через MySQL, а не через копирование.

Неактивен

 

#7 24.05.2009 16:34:55

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Триггеры - альтернатива InnoDB

Меня не устраивает то, что при ручном создании триггеров, эти файлы не создались smile

Neval написал:

Удалил файлы триггеров, создал триггеры вручную с помощью SQL - не работают. На первом компе в файлах данных БД были созданы файлы с расширением TRN, содержащий ссылку на таблицу, к которой привязан триггер, но на втором компе такие файлы не создались. Почему - не знаю. Возможно, причина в этом?


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#8 25.05.2009 02:29:52

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Триггеры - альтернатива InnoDB

Не стоит полагаться на нижележащую структуру файлов. Их всегда могут поменять без Вашего
ведома. Пользуйтесь открытыми интерфейсами, и проблем не будет.

Если Вы создали триггер командой, и он создался, но не появился файлик — то это в порядке
вещей. Триггер то создался. Как он хранится в базе — это дело СУБД. От версии к версии меняется.
Вот если бы триггер не создался при этом, тогда надо было бы идти и описывать багу smile

Неактивен

 

#9 25.05.2009 09:30:33

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Триггеры - альтернатива InnoDB

Дык триггер-то создался (дампом), существовал, но не работал smile Ладно, буду экспериментировать.


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#10 25.05.2009 09:33:35

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: Триггеры - альтернатива InnoDB

А Вы уверены, что он создался дампом? Это надо было дамп с ключом --triggers запускать...

Неактивен

 

#11 27.05.2009 12:25:21

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Триггеры - альтернатива InnoDB

Эээээ... имел ввиду, что создавал его SQL командой. В том-то и дело, повторный запуск команды создания триггера ответил "триггер уже существует". Собственно дроп триггера также без проблем сработал, но это уже было позже)) Не подумайте, что я дропнул его, а потом тестил всё))


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson