Dan*_*Dan 0 php mysql database insert
我正在尝试制作一个实验性的Web应用程序,以最大限度地减少冗余数据.我有三个示例表设置如下:
Table one
ID | created_at (unix timestamp) | updated_at (unix timestamp)
Table two
ID | Foreign Key to table one | Title
Table three (pages)
ID | Foreign Keys to both table one and two | Content | Metadata
Run Code Online (Sandbox Code Playgroud)
这个想法是在应用程序中创建的所有内容都将具有创建/编辑时间.
许多(但不是全部)事物都有标题(例如页面或页面的部分).
最后,有些东西会有自己特有的属性,例如页面的内容和元数据.
我正在尝试找出将数据输入多个表的最佳方法.我知道我可以从PHP执行多个插入查询,跟踪当前事务中创建的行,并在事务的后续部分失败时删除这些行.但是,如果PHP脚本完全死亡,它可能会在所有删除完成之前停止.
MySQL是否有任何内置逻辑允许插入查询被拆分?触发器能够处理这种类型的事务还是超出其功能?
任何建议,想法或想法将不胜感激.
谢谢!
解决方案是使用事务,它允许"全有或全无"行为.
这个想法如下:
有关更多信息,您可以查看12.4.1.用于MySQL的START TRANSACTION,COMMIT和ROLLBACK语法.
请注意,事务仅适用于某些数据库引擎: