1

Тема: автоматическое обновление таблицы

Доброго времени суток!
Слышал от товарищей что можно как то через phpmyadmin сделать следующее:
чтобы при добавлении новых позиций в одну таблицу эти позиции сопоставлялись с позициями в другой.
как это можно осуществить?

2

Re: автоматическое обновление таблицы

Не понял что подразумевается под "сопоставлялись". Приведите пример того, как должно быть.

3

Re: автоматическое обновление таблицы

Hanut сказал:

Не понял что подразумевается под "сопоставлялись". Приведите пример того, как должно быть.

Например:
есть 2 таблицы table и tables. обе имеют одинаковые поля: id, art, name.
но в таблице tables поле name не заполнено, заполнено только art.
как сделать так, чтобы при добавлении позиции в таблицу table заполнить поля tables в соответствии с полем art?

сделал в phpmyadmin триггер, но он почему-то не работает =\

DROP TRIGGER IF EXISTS `update`//
CREATE TRIGGER `update` AFTER INSERT ON `table`
FOR EACH ROW begin
update `tables` set `tables`.`name`=`name` where `tables`.`art`=`art`;
end
//

4

Re: автоматическое обновление таблицы

Если я правильно понял, то триггер должен выглядеть так:

DROP TRIGGER IF EXISTS `update`//
CREATE TRIGGER `update` AFTER INSERT ON `table`
 FOR EACH ROW BEGIN
    UPDATE `tables` SET `name` = NEW.`name` WHERE `art` = NEW.`art`;
  END
//

NEW - это алиас строки добавленноф в таблицу table.

5

Re: автоматическое обновление таблицы

Hanut сказал:

Если я правильно понял, то триггер должен выглядеть так:

DROP TRIGGER IF EXISTS `update`//
CREATE TRIGGER `update` AFTER INSERT ON `table`
 FOR EACH ROW BEGIN
    UPDATE `tables` SET `name` = NEW.`name` WHERE `art` = NEW.`art`;
  END
//

NEW - это алиас строки добавленноф в таблицу table.

сделал, результат:

#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 '' at line 3

версия mysql 5, phpmyadmyn 3.3.9

6

Re: автоматическое обновление таблицы

Под окном SQL запроса есть поле "Разделитель", там должно быть два слеша (//).

7

Re: автоматическое обновление таблицы

Hanut сказал:

Под окном SQL запроса есть поле "Разделитель", там должно быть два слеша (//).

Большое спасибо, сработало.
еще вопрос: мне как новичку в этом тяжко разобраться, можно ссылочку на какой-нибудь более менее понятный для начинающих материал, где "разжевано" все.
спасибо

8

Re: автоматическое обновление таблицы

popoff17 сказал:

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

Это больной вопрос. Переведенной на русский язык документации MySQL 5 не существует, только для MySQL 4 (но там нет триггеров). Поэтому только по-английски: http://dev.mysql.com/doc/

Могу только посоветовать бумажный вариант - переведенные книги по MySQL Поля Дюбуа.

9

Re: автоматическое обновление таблицы

Может пригодяться статьи:
http://www.zoonman.ru/library/mysql_sr_and_t.htm
http://habrahabr.ru/blogs/mysql/37693/
http://ruseller.com/lessons.php?rub=28&id=630
http://info.sectorit.net/index.php/comp … --mysql-51