[英]PHP MySQL inserting data to multiple tables
我正在嘗試制作一個實驗性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
想法是,在應用程序中創建的所有內容都將具有創建/編輯時間。
許多(但不是全部)事物將具有標題(例如,頁面或頁面要進入的部分)。
最后,某些事物將具有特定於其自身的屬性,例如頁面的內容和元數據。
我正在嘗試找出將數據輸入多個表的最佳方法。 我知道我可以從PHP進行多個插入查詢,跟蹤當前事務中創建的行,並在事務的后續部分失敗時刪除這些行。 但是,如果PHP腳本完全死掉,它可能會在所有刪除操作完成之前停止。
MySQL是否有任何內置邏輯可以拆分插入查詢? 觸發器將能夠處理這種類型的交易還是超出其能力?
任何建議,想法或想法將不勝感激。
謝謝!
一種解決方案是使用Transactions ,它允許獲得“全有或全無”的行為。
這個想法如下:
有關更多信息,請查看12.4.1。 適用於MySQL的START TRANSACTION,COMMIT和ROLLBACK語法 。
請注意,事務僅適用於某些數據庫引擎:
對於多個插入,您可以創建一個過程,然后在PHP上調用該過程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.