2012-08-07 24 views
1

我有2個表在mySQL中有一對一的關係。它們都具有與主鍵相同的user_id,並且當我向第一個表中插入帖子時,我需要以某種方式自動將具有相同user_id的行插入到第二個表中。有沒有我可以使用它的mysql命令或PHP腳本?如何自動添加一個新行到另一個表PHP MYSQL

+2

聽起來像它可能更容易只是將表組合成一個,如果他們與他們的主鍵相關 - 爲什麼有兩個表? – DaveRandom 2012-08-07 11:12:32

+2

你可以使用觸發器。 – 2012-08-07 11:13:09

回答

2

您可能會在數據庫中設置一個TRIGGER。這些觸發器實體存儲在數據庫結構中,使用PHP,您可能只執行CREATE TRIGGER查詢,該查詢會創建一個。

但是,兩個表的數據與PRIMARY KEY完全相同,聽起來像是您的數據庫結構有點糟糕的建模。您應該花時間重新構建數據庫,實質上將兩個表合併(如果可能)。

如果你正在使用PHP來INSERT INTO數據庫,以後還可以互相調用兩個查詢:

INSERT INTO table1(field1, field2...) VALUES (value1, value2...) 
INSERT INTO table2(field1, field2...) VALUES (value1, value2...) 

但在兩個查詢的依賴後,對方要求高精確度的主鍵可能會走出去同步,打破關係。

1

如果我理解您的問題,您可以從第一個表中獲取插入的user_id,並使用它在第二個表中插入一個新行。

$query = mysql_query("SELECT * FROM first_table ORDER BY user_id DESC LIMIT 1"); 
$row = mysql_fetch_assoc($query); 

現在可以在第二個表中插入$ row ['user_id']。

如果在同一時間插入多行,這當然會有風險。

+1

使用'ORDER BY user_id DESC LIMIT 1'效率低下,它命令整個表,然後關閉最上面一行。只要做'SELECT MAX(id)FROM ...' – Mark 2012-08-07 12:11:18

相關問題