2011-05-10 29 views
0

如何連接兩個mysql表,我在同一時間插入數據?如何連接兩個mysql表,其中我在同一時間插入數據

我有表客戶這是我的應用程序表,我有用戶這是使用庫我用我的框架,這個庫處理用戶和授權。

我想有USER_ID(這是ID用戶)在客戶,但我創造了同時這兩個表。

任何想法?謝謝!

+0

您可能會插入記錄,而不是在「同一時間」創建表格。 MySQL中沒有並行性,1個查詢在另一個之後被執行 - 這就是它的工作原理。你應該更詳細地闡明你的問題。 – 2011-05-10 09:00:10

+0

是的,你說得對,我在這兩張表中插入記錄,是我的錯誤。 :) – Nemanja 2011-05-10 09:39:10

回答

1

php命令mysql_insert_id爲您提供插入到表中的最後一條記錄的ID。所以從我的未知如果你插入一個用戶,你可以得到的ID然後插入到另一個表?

http://php.net/manual/en/function.mysql-insert-id.php

還是我明白你的問題錯?

+0

這可能會爲我的問題提供快速解決方案。我不知道這個命令。謝謝! – Nemanja 2011-05-10 09:42:41

+0

@Nemanja我不認爲你應該將此視爲一種快速解決方案。如果您希望直接添加與您剛插入到另一個表中的內容相關的內容,則在輸入後獲取插入ID是最常見和最快捷的方式。 – 2011-05-10 09:47:17

+0

你可能是對的,在幾乎同一時間創建2個用戶的可能性是什麼,並且搞砸了id。 – Nemanja 2011-05-10 10:18:06

0

鏈接表如何?

users_customers 
user_id | customer_id 
===================== 
1  | 648785552 
5  | 145778304 
4  | 654566055 

然後,您可以連接表一起使用這個表,例如像這樣:

SELECT users.name, customers.address 
    FROM users 
    JOIN users_customers 
    ON users_customers.user_id = users.id 
    JOIN customers 
    ON users_customers.customer_id = customers.id 
1

這是根本不可能的。在一個計劃中,同一時間不會發生任何事情。

什麼是可能的是:

  • 啓動一個數據庫事務
  • 執行第一個查詢
  • 檢索表的關鍵;如果是自動增量,則有內置方法可以檢索每個數據庫中的最後一個插入的密鑰API
  • 使用檢索到的密鑰作爲參數執行第二個查詢
  • 提交事務;但是如果發生錯誤,您需要回滾整個事務

這是如何完成的,它的行爲完全如您所願。

相關問題