2013-06-26 65 views
6

提前感謝您的幫助。外鍵如何進入表格?

我有一個關於外鍵的問題。我理解將一個表中的數據插入另一個表中以供參考的概念。但我的問題是,它是如何到達那裏的?

目前我有兩個表格和兩個表格。一個表單將數據插入到表A中,另一個表單插入到B中。然後,我使用一個函數將最後一個插入的ID插入到A中,並將其插入到B中。這是正確的方式,還是我錯過了某些內容?

+1

您插入表A中,您獲取該查詢所生成的last_insert_id(),並在插入到B中時使用該ID並且是的,這是正確的方式,您不會錯過任何東西。 –

+0

是的,我正在使用該功能。感謝您的確認,我很高興我不只是黑客入侵。 –

+0

你不會剽竊任何東西,這很好,你自己得出結論,只要保持這種狀態,當你自己得出結論時真的很有意義。是的,幾乎所有的IT內容都是直接的:) –

回答

6

有兩種可能性:

  • 你知道,在表A中插入之前的主鍵=>然後你的技術是不是正確的,因爲你檢索你已經添加的東西。
  • 你不知道它(例如:自動遞增的ID)=>然後你的技術是正確的,我不認爲有任何其他更好的方法來實現你所要求的。

請注意,我所說的主鍵是表A行的主鍵,並在表B行的外鍵

+0

是的,就是這樣,它會自動增加,所以在插入之後沒有id。謝謝你們,這真是一種解脫,我對這個東西很陌生,在我走的時候找出它,我總是擔心我只是在竊聽它,哈哈。 –

1

簡短的回答,我不相信你不會錯過任何東西。有很多方法可以完成你以後的工作,但是你的解釋可能是最常用和最直接的。

另一種方法是在插入後使用表A上的觸發器填充表B(這隻有在不需要任何額外的用戶輸入時纔有效,如插入表B中的表單輸入)。

-1

由於您無法一次插入兩個ID,所以這是一個正確的方法。

  • 首先在主表上插入記錄,我們知道它。
  • 其次,你最後使用mysqli_insert_id()功能插入ID
  • 現在使用此主鍵在外部表上插入數據。
+2

我沒有downvote。就像參考一樣,'mysql_'命令已被棄用,不再支持。您應該使用'mysqli_'或'PDO'函數。 – War10ck

+0

你好,請參閱mysql_雖然仍然運行在應用程序的十萬個。它只是被棄用。因此你可以使用mysql_或mysqli_。 – Shreyas