簡體   English   中英

MySQL一次更新多個表

[英]MySQL UPDATE multiple tables at once

我對這個問題有一百萬個不同的答案,它們看起來都不一樣。 必須有一些方法以簡單的方式解釋這個問題?

如果您有兩個這樣的表:

Exhibition
ID *
DESC
CURATOR

Schedule
ID *
TITLE
STARTDATE
ENDDATE

每個ID引用另一個ID,每個表存儲有關同一對象的不同內容。

你怎么能在一個聲明中用新信息更新每一列?

我嘗試過類似的東西:

    UPDATE Schedule
    INNER JOIN Exhibition
    USING (ID)
    SET Schedule.Title =            :Title, 
        Exhibition.Desc =           :Desc,
        Schedule.StartDate =        :StartDate, 
        Schedule.EndDate =          :EndDate
    WHERE ID = :ID;

但無濟於事。 我覺得這應該非常容易,但我只是錯過了它。

像這樣更新它

UPDATE Schedule, Exhibition
    SET Schedule.Title =            :Title, 
        Exhibition.Desc =           :Desc,
        Schedule.StartDate =        :StartDate, 
        Schedule.EndDate =          :EndDate
    WHERE ID = :ID AND Schedule.refcol = Exhibition.refcol;

顯然WHERE ID = :ID太模糊了。 將其更改為WHERE Schedule.ID = :ID具有所需的效果。

感謝JW웃

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM