2010-12-10 40 views
1

我意識到這個問題似乎已經被問及過,但我仍然不確定這是否可能。更新多個mysql表中的用戶ID列

我試圖更新9個表,以反映USER_ID值的變化,有點像這樣:

UPDATE table1, table2, table3, table4 SET 
table1.id='12', table2.id='12', table3.id='12', table4.id='12' 
WHERE table1.id='15' OR table2.id='15' OR table3.id='15' OR table4.id='15' 

這可能嗎?我錯過了真正明顯的東西嗎?

回答

0

UPDATE的語法

UPDATE table_name 
SET column1=value, column2=value2,... 
WHERE some_column=some_value 

看來你只能在同一時間更新一個表。

+0

它是可能的:http://dev.mysql.com/doc/refman/5.0/en/update.html – 2010-12-10 09:46:32

+0

你是對的!這有點奇怪。它是否也是便攜式的?我在where子句中使用了JOIN,也使用了EXISTS,但從未使用2個表。 – 2010-12-10 09:54:59

0

更新聲明與select非常相似,所以您應該可以做到這一點!

但是,我建議使用觸發器。

0

更改ORAND否則您將遇到問題。 OR將更新許多其他的用戶ID

UPDATE table1, table2, table3, table4 SET 
table1.id='12', table2.id='12', table3.id='12', table4.id='12' 
WHERE table1.id='15' AND table2.id='15' AND table3.id='15' AND table4.id='15' 
+0

這是一個很好的觀點!不太清楚我是如何錯過的...不幸的是,純粹使用AND不起作用,因爲ID不在每個表中(即沒有用戶在表4中有條目) – Jon 2010-12-10 10:04:04

+0

他們爲什麼你在sql語句中使用這些表? – 2010-12-10 10:14:03

+0

因此,在更新它們之前,我不必檢查每個表中是否存在條目。 – Jon 2010-12-10 10:28:11