Задавайте вопросы, мы ответим
Вы не зашли.
Везде информация по таблицам и работе с базой "Information schema" кусочна и разрознена. А для отслеживания изменений в прочих базах (насколько я понял) это лучший метод. Где бы взять возможно полную (лучше справочную) информацию о том что же хранят таблицы "Information schema". Заранее Спасибо.
Неактивен
Думаю, что лучше всего это описано в документации: http://dev.mysql.com/doc/refman/5.5/en/ … chema.html
Если нет какой-то конкретной информации, то можно сообщать о баге документации на bugs.mysql.com
Неактивен
Да конечно это интересная информация жаль только не на русском.
Положим я нашел достаточно простой способ находить добавленные стоки в таблицах.
А существует ли способ (простой) отслеживать изменения в таблицах без изменения количества записей,
например :
UPDATE staff SET works_since = "2000-04-26" WHERE name = "Jack";
???
Неактивен
Наверное это имеет смысл делать триггером ON UPDATE
Неактивен
Что только не пробовал не удаётся установить тригер.
пробую так:
CREATE TRIGGER add_str1 AFTER
INSERT ORDER 1
ON ALTAIR_DB.cs_name
FOR EACH ROW
BEGIN
INSERT INTO ALTAIR_DB.events (m_tabl) VALUES ('cs_name');
INSERT INTO ALTAIR_DB.events (kod) VALUES (cs_name.Kod);
INSERT INTO ALTAIR_DB.events (name) VALUES (cs_name.Name);
END
в ответ даёт:
Ошибка
SQL-запрос:
CREATE TRIGGER add_str1 AFTER INSERT ORDER 1 ON ALTAIR_DB.cs_name
FOR EACH
ROW
BEGIN
INSERT INTO ALTAIR_DB.events(
m_tabl
)
VALUES (
'cs_name'
);
Ответ MySQL: Документация
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER 1
ON ALTAIR_DB.cs_name
FOR EACH ROW
BEGIN
INSERT INTO ALTAIR_DB.event' at line 2
хочу обратить внимание что TRIGGER и EACH в ответе MySQL не выделены как команды (жирным).
Подумал версия не та MySQL 5.0.51b. Установил MySQL -5.5.23. Практически ничего не поменялось.
Отредактированно eav1962 (25.05.2012 23:02:31)
Неактивен
Выделение это не к MySQL, а к клиенту, который используете (PMA?)
Ошибка указывает на "ORDER 1" - в MySQL это недопустимый синтаксис, см. http://dev.mysql.com/doc/refman/5.5/en/ … igger.html
Неактивен
"ORDER 1" я убирал он просто давал другие ошибки. Но всё равно спасибо огромное ваша ссылка помогла.
К сожалению в описаниях не проставляются акценты. Я например попался на том что не ставил операторы "delimiter" при работе в phpMyAdmin, НАДО ТАК :
delimiter |
CREATE TRIGGER add_str1 BEFORE INSERT ON cs_name
FOR EACH ROW BEGIN
INSERT INTO events SET kod = NEW.Kod;
END;
|
delimiter ;
Неактивен
Подскажите пожалуйста как посмотреть какие тригеры уже установленны (чтоб удалить лишние)
Неактивен
SELECT * FROM information_schema.TRIGGERS;
Неактивен
Всё о чём мы говорили касается отслеживания изменений в таблицах. А можно ли отслеживать запросы (каким то образом) типа Select ... , т.е. знать об обращениях к базе, даже если она не менялась?
Отредактированно eav1962 (05.06.2012 12:18:32)
Неактивен
Ну да, если логирование запросов в my.cnf включить.
Неактивен
а подробнее? или где почитать?
Неактивен
Неактивен