Запрос на вставку или обновление 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
,
Проверьте эту ссылку