Запрос на вставку или обновление n столбца из родительской таблицы в 2 столбца таблицы истории

Мне нужен PHP-MYSQL Query (код) для таблицы истории: я знаю, что мне нужно делать и как - но не понимаю, как написать запрос MySQL для него и то же самое для листинга на странице php. ниже то, что я думаю и хочу реализовать.

у меня есть таблица продуктов как: product_table

id | cat_id   | Subcat |productname | weight    | assigned_to  | status_id
---------------------------------------------------------------------------
1  |   11     |   2    |     P1     | 5.8       |        8     |   1
2  |   12     |   3    |     P2     | 6.7       |        27    |   2

они являются главными более столбцами под product_table, такими как add_date, update_date ..etc

Теперь, если я вставлю или обновлю свою таблицу Product (product_table), то каждая ее запись, будь то новая (insert) или обновленная запись, должна быть вставлена ​​/ обновлена ​​в моей History History (history_table) как:

* Ниже приведено то, что, когда Новое значение равно Вставить в product_table, и то же самое относится к таблице истории, как показано ниже:*

id | pid   |  cat_id   | sub_cat   | old_value    |  new_value   | filed_name     | date_m  
---------------------------------------------------------------------------------------------------------
1  |  1    |   11      |   2       |     0        |     P1       |   productname  | 2014-01-17 05:05:21
2  |  1    |   11      |   2       |     0        |     5.8      |   weight       | 2014-01-17 05:05:21
3  |  1    |   11      |   2       |     0        |     8        |   assigned to  | 2014-01-17 05:05:21
4  |  1    |   11      |   2       |     0        |     1        |   status       | 2014-01-17 05:05:21

Теперь, когда под таблицей продуктов: запись 1 обновлена, то же самое относится и к таблице истории AS ниже:

id | pid   |  cat_id   | sub_cat   | old_value    |  new_value   | field_name    |  date_m 
--------------------------------------------------------------------------------------------------------
1  |  1    |   11      |   2       |     P1       |     P2       |   productname |  2014-01-18 03:05:22
2  |  1    |   11      |   2       |     5.8      |     5.4      |   weight      |  2014-01-18 03:05:22
3  |  1    |   11      |   2       |     8        |     7        |   assigned to |  2014-01-18 03:05:22
4  |  1    |   11      |   2       |     1        |     4        |   status      |  2014-01-18 03:05:22

следовательно, когда я увижу свою страницу продукта с id: 1 history, она будет выглядеть так:

     Date            | User  |     field_name       |  Change
-----------------------------------------------------------------------------------
2014-01-17 05:05:21  | admin |     productname      |       =>  P1
2014-01-17 05:05:21  | admin |     weight           |       =>  5.8
2014-01-17 05:05:21  | admin |     assigned to      |       =>  8
2014-01-17 05:05:21  | admin |     status           |       =>  1 

2014-01-18 03:05:22  | admin |     productname      |  P1   =>  P2
2014-01-18 03:05:22  | admin |     weight           |  5.8  =>  5.4
2014-01-18 03:05:22  | admin |     assigned to      |  8    =>  7 
2014-01-18 03:05:22  | admin |     status           |  1    =>  4

Следовательно, это то, что я собираюсь реализовать, но не понимаю, какой код (mysql) должен быть написан при вставке и обновлении, так что некоторый (который я хочу) столбец в product_table должен быть вставлен / обновлен во 2 столбце history_table и сброшен как Колонна мудрая, как определено выше. И как я могу отобразить на своей странице продукта как истории.

1 ответ

Создайте AFTER INSERT TRIGGER а также AFTER UPDATE TRIGGER на столе product_table,

Проверьте эту ссылку

  1. СОЗДАТЬ СИНТАКСИС ТРИГГЕРА
  2. СОЗДАТЬ ТРИГГЕР ДЛЯ ТАБЛИЦЫ ИСТОРИИ
Другие вопросы по тегам