簡體   English   中英

更新同一個TABLE的另一列后如何更新列?

[英]how to update a column after updation of another column of same TABLE?

我試圖在phpMyAdmin中的先前更新列的幫助下更新列。 我試圖通過除以dep(比率= advance / dep)來計算比率。 我有這張桌子:

#id#   #dep#  #cash#  #advance#  #ratio#
----------------------------------------
1       100     100      200        0
----------------------------------------
2       200     300      500        0 
----------------------------------------    

我正在嘗試這段代碼:

Update 'table1' Set 'ratio'= 'advance'/'dep';

當我更新列dep的值或者在表中提前時,我期望輸出比率更新為200/100 = 2。

您可以在表上使用CREATE TRIGGER來計算和設置受影響行的新比率:

CREATE TRIGGER upd_ratio BEFORE UPDATE ON table_name
FOR EACH ROW 
BEGIN
    SET NEW.ratio = NEW.advance / NEW.dep;
END

UPDATE並重新計算所有記錄,可以使用以下UPDATE語句。 創建觸發器以初始化ratio列后,應執行此操作一次。

UPDATE `table_name` SET `ratio` = `advance` / `dep`

關於dbfiddle.uk的演示

您還可以使用CREATE VIEW創建表格視圖(不包含ratio列)。 您可以動態計算ratio列,並且不需要在UPDATE之后存儲和重新計算值:

CREATE VIEW view_name AS SELECT *, advance / dep AS ratio FROM table_name;

關於dbfiddle.uk的演示

注意:正如@ P.Salmon 在評論中提到的,你需要使用反引號而不是單引號。 您當前的UPDATE語句無效。

暫無
暫無

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

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