2014-01-18 39 views
0

我有兩個表posts (id, num_c)comments (post_id)。在評論表中插入評論之後,是否有辦法在num_c的帖子列上觸發自動增量,並在剛剛插入的評論中匹配post_id自動更新匹配id的行

我可以一個接一個地運行兩個查詢,但我認爲應該有一種數據庫管理這種方式?

回答

0

是的,你可以使用SQL觸發器來做到這一點。觸發器是數據庫自動執行某些數據集更改時完成的某些工作的一種方式。觸發器的一般語法(如http://www.tutorialspoint.com/plsql/plsql_triggers.htm所示):

CREATE [OR REPLACE ] TRIGGER trigger_name 
    {BEFORE | AFTER | INSTEAD OF } 
    {INSERT [OR] | UPDATE [OR] | DELETE} 
    [OF col_name] 
    ON table_name 
    [REFERENCING OLD AS o NEW AS n] 
    [FOR EACH ROW] 
    WHEN (condition) 
    DECLARE 
     Declaration-statements 
    BEGIN 
     Executable-statements 
    EXCEPTION 
     Exception-handling-statements 
    END; 
+0

如何申請這個我的問題?從插入的評論中獲取post_id看起來像是一個挑戰 – user2798694

+0

您提到的評論表只有一個名爲post_id的列。你在問如何解析並從發佈的評論中提取一個值? – ucsunil

0
You can create trigger in this way 

CREATE TRIGGER t_inserted AFTER INSERT ON comments 
    FOR EACH ROW 
BEGIN 
CALL update_posts(); 
END; 
+0

嗨,這基本上是一個很好的建議和正確的開始,但是你能否在這裏更具體一些,並提供一個工作的例子?您的示例看起來像是在添加評論時對所有帖子執行更新。但是,OP想知道如何在添加新評論時增加特定帖子的值。 – tiguchi