2017-04-04 141 views
0

因爲我正在處理一個用於管理元數據的小型應用程序,並且想知道是否可以在滿足條件時將行插入另一個表中。如果符合條件,更新另一個表

讓我遵循例如:所以,讓我們說我們有表ispu_plan

CREATE TABLE `ispu_plan` (
    `id` int(11) NOT NULL, 
    `id_jls` int(11) NOT NULL, 
    `id_razina_plan` int(11) NOT NULL, 
    `id_revizija` int(11) NOT NULL, 
    `naziv_plan` varchar(150) NOT NULL, 
    `ispu_naziv` varchar(100) NOT NULL, 
    `id_mjerilo` int(11) NOT NULL, 
    `datum_donosenja_plana` date DEFAULT NULL, 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

和我更新表ispu_plan我想更新另一個表(例如ispu_plan_updated)如果某些條件得到在ispu_plan滿足從表ispu_plan

使用此查詢相同的行:

SELECT * FROM ispu_plan WHERE datum_donosenja_plana BETWEEN '2014-01-01' AND CURDATE() 

我想在表ispu_plan_updated中插入一行。是這樣的事情是可能的,我可以插入行在ispu_plan_updated使用視圖?

謝謝

+1

結賬'插入選擇...' –

+0

因此,要回顧一下@svinjica,一些腳本'ispu_plan更新行'如果滿足一些條件,同時從'ispu_plan_updated'更新一行? –

+0

@DanIonescu是的,真的! – Svinjica

回答

1

您可以使用觸發器來實現這一目標:從

DROP TRIGGER IF EXISTS ispu_plan_trigger; 

DELIMITER | 

CREATE TRIGGER ispu_plan_trigger AFTER UPDATE ON ispu_plan 
FOR EACH ROW BEGIN 
-- example condition with update: 
IF NEW.datum_donosenja_plana >= '2017-01-01' THEN 
UPDATE ispu_plan_updated SET naziv_plan = 'some_value' WHERE id = NEW.id 
LIMIT 1; 
END IF; 
END; 

DELIMITER ; 
+0

謝謝丹快速回復。我會盡快測試這個 – Svinjica

+0

沒問題,只需更換你自己的條件和自定義更新 –

+1

對你來說solv是否合適?@svinjica? –

相關問題