Innodb

我如何編寫一個儲存過程來執行計算並將結果儲存在表中?

  • August 19, 2015

我有兩張桌子:

CREATE TABLE `siteArea` (
 `length` decimal(6,2) NOT NULL,
 `breadth` decimal(6,2) NOT NULL,
 `Area` decimal(6,2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


CREATE TABLE `roadArea` (
 `Area` decimal(6,2) NOT NULL,
 `roadWidth` decimal(6,2) NOT NULL,
 `roadArea` decimal(6,2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

在哪裡

Area = length * breadth;
roadArea = Area * road_width;

siteArea 表中的列區域必須更新為 roadArea 表的區域列。

對 siteArea 表的 Area 所做的任何更改都必須更新到 roadArea 表,並且 roadArea 必須自動執行計算,而無需使用者輸入。

您需要在 siteArea 表上放置一個觸發器,以便無論何時更新或插入它,它都會呼叫一個帶有表示新站點區域的參數的儲存過程,該過程將計算所需的值並將它們插入到表中。

你的問題太模糊了,我無法進一步描述。

引用自:https://dba.stackexchange.com/questions/111506