2017-08-01 50 views
0

我有產品表(動態更改)和數據導出表。我需要一個觸發器,每天一次將表格產品的新產品添加到表格輸出中。我的代碼是:如何爲MySQL DB創建自動更新觸發器?

CREATE TRIGGER auto_update 
BEFORE UPDATE 
FOR EACH ROW 
SET export.name = product.prod_name, export.link=product.prod_link, export.price=product.prod_price 
WHERE product.prod_type='product'; 

但是這段代碼不起作用。如何解決它?有任何想法嗎?

+0

我認爲你需要一個事件而不是觸發器。 –

+0

也許是事件,我在SQL中很新。 –

回答

1

由於您希望此代碼按計劃執行,因此您可能希望使用事件調度程序。

請看這裏:https://dev.mysql.com/doc/refman/5.7/en/event-scheduler.html

從這裏就可以做這樣的事情:

CREATE EVENT e_store_ts 
    ON SCHEDULE 
     EVERY 10 SECOND 
    DO 
     INSERT INTO myschema.mytable VALUES (UNIX_TIMESTAMP()); 

這將創建執行每10秒,並插入一個UNIX時間戳到表mytable新的事件。您可以使用ALTER更改事件,您可以使用DROP刪除它們。玩的開心!

所以在你的情況下,創建一個每天執行的事件,執行你想要執行的表達式(DO子句)。

+0

如何在不重新輸入整個表的情況下只添加新項目?據我瞭解有一個命令'WHERE NOT EXISTS',但如果我修改我的代碼像這樣'INSERT INTO'export_copy'('name','link')WHERE NOT EXISTS(SELECT p.post_title,p.guid FROM wp_posts p WHERE p.post_type ='product')'我有一個錯誤,說'WHERE NOT EXISTS'附近的語法不正確。 –

+0

確實有很多產品,你每天都增加很多嗎? –

+0

不多,但我很懶。我想現在創建腳本並忘記它:) –