我希望有人可以帮助我.我有一个记录导入工作的表.我需要一个查询,它将生成一个矩阵,其中包含垂直轴上的表名,水平轴上的导入日期,以及矩阵单元格中该日期为该表导入的记录总数.我不在乎是否必须创建一个临时表,但整个过程必须在MySQL中完成.
下面是我们的事件日志表的简化示例.它不仅有更多的fieds,而且我们导入更多的表.因此,解决方案应该考虑查询表名.您会注意到,数据可以每天多次导入表中,如记录5和6中所示.
id table_name import_date num_recs
----+-----------+--------------------+-------
0 customer 2010-06-20 00:00:00 10
1 order 2010-06-20 00:00:00 15
2 customer 2010-06-21 00:00:00 5
3 order 2010-06-21 00:00:00 6
4 customer 2010-06-22 00:00:00 1
5 order 2010-06-22 00:00:00 6
6 order 2010-06-22 00:00:00 1
Run Code Online (Sandbox Code Playgroud)
我们正在寻找像这样的结果.它不一定非精确
table_name 06-20 06-21 06-22
------------+-----+-----+------
customer | 10 | 5 | 1
order | 15 | 6 | 7
Run Code Online (Sandbox Code Playgroud) 我正在使用Doctrine 2实体.我们有一些实体在保存到数据库时必须更新相关项目.例如,当修改用户记录时,我们将其保存为新记录,并将"inactive"字段设置为"false".但是,我们必须将该用户以前所有记录的"非活动"字段设置为"true".这样做是为了保留审计历史记录.它是Legacy数据库,因此不能选择更改结构.
由于Doctrine通过将对象传递给persister对象(persist ::($ thisObj))而不是具有save方法($thisObj->save())的对象来保存对象,因此我们不能只从父对象扩展'save'方法.我在这里看到的唯一选择是尝试扩展'persist'对象,但这听起来像一只鹅鹅,只是等待发生.
我找到了一些关于事件的信息,但是没有看到如何添加它们以使事件在持久化特定实体时触发特定函数.
如何为我的某些实体添加预保存/后保存功能?