於是我開始寫一個論壇,因爲我想學習一點SQL(MySQL)。ID處理/插入多個表。 (基礎論壇)
所以,首先我有一個帖子表,並有post_id
和topic_id
列。
但是,在另一邊我有一個主題表。 在主題表我也有last_post_id
和topic_id
!
所以他們互相參考。
所以問題是:當用戶創建一個話題(同時寫第一篇文章)時,如何INSERT這些id有效?
因爲現在我要做以下步驟:
插入話題相關的數據(主題title..etc,插入last_post_id = 0,因爲我不知道這裏這個值),然後檢索topic_id
插入後的數據(文本,用戶名..,topic_id),並retieve這個特殊的POST_ID
- 更新主題表,檢索到的post_id(設置爲
last_post_id
)。
它不是太長,乏味,無效..?
謝謝你的時間。我的英語不是最好的.. sry。
你可以使用單個事務來完成,但基本的想法是一樣的。您需要在擁有topic_id之前插入新主題,並且您需要在擁有last_post_id之前插入新帖子。用你目前的表格,這是沒有辦法的。 *編輯添加:你也可以使用['TRIGGER'](http://dev.mysql.com/doc/refman/5。6/en/triggers.html),當新記錄被添加到'posts'時,它會自動更新'last_post_id'字段。這並不會改變執行的查詢數量,但它將由MySQL本身透明地處理。 – MartinodF 2012-02-26 23:32:03
@MartinodF:你想把它作爲答案嗎?當你發表評論時,我正在寫幾乎相同的東西(即使是觸發器!)。 – 2012-02-26 23:36:41
@ muistooshort我已經發布它作爲一個答案,也許晚了一點:)也許你關於使用NULL的觀點也是一個好主意! – MartinodF 2012-02-26 23:40:19