Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Вопрос по mysql знатокам
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Вопрос по mysql знатокам

Страниц (1): [1]
 

1. mr_id - 14 Марта, 2011 - 12:57:02 - перейти к сообщению
Есть 2 таблицы например table1 и table2 у каждой есть поле id_contract

Вопрос возможно ли средствами mysql сделать так что бы в table1 была добавлена запись
в table2 была добавлена автоматически id_contract?
2. SAD - 14 Марта, 2011 - 12:59:21 - перейти к сообщению
триггер
3. mr_id - 14 Марта, 2011 - 13:53:01 - перейти к сообщению
А пример показать можете? Был бы очень благодарен.
4. EuGen - 14 Марта, 2011 - 13:55:11 - перейти к сообщению

Нет, триггер не нужен, нужен внешний ключ с соответствующим свойством ON UPDATE CASCADE, а так же тип таблицы InnoDB:
http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]constraints[dot]html
- там и примеры найдете

А, прошу прощения, неправильно понял - нужно же Добавлять, а не обновлять. Тогда да, нужен триггер.
Вот мой пример:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. DROP TRIGGER IF EXISTS `update_status`//
  3. CREATE TRIGGER `update_status` AFTER UPDATE ON `YOUR_TABLE`
  4.  FOR EACH ROW begin
  5. IF new.STATUS != old.STATUS then
  6. INSERT INTO YOUR_ANOTHER_TABLE (user_id, status_was, status_became, change_date) VALUES (old.id, old.STATUS, new.STATUS, NOW());
  7. end IF;
  8. end
  9. //
  10.  

- триггер отлавливает изменение поля status и помещает информацию в другую таблицу о его статусе. В Вашем случае нужно будет его модифифировать на вставку.
5. mr_id - 14 Марта, 2011 - 16:18:19 - перейти к сообщению
Спасибо помощь.
Буду разбираться

 

Powered by ExBB FM 1.0 RC1