我有兩個表posts (id, num_c)
和comments (post_id)
。在評論表中插入評論之後,是否有辦法在num_c
的帖子列上觸發自動增量,並在剛剛插入的評論中匹配post_id
?自動更新匹配id的行
我可以一個接一個地運行兩個查詢,但我認爲應該有一種數據庫管理這種方式?
我有兩個表posts (id, num_c)
和comments (post_id)
。在評論表中插入評論之後,是否有辦法在num_c
的帖子列上觸發自動增量,並在剛剛插入的評論中匹配post_id
?自動更新匹配id的行
我可以一個接一個地運行兩個查詢,但我認爲應該有一種數據庫管理這種方式?
是的,你可以使用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;
You can create trigger in this way
CREATE TRIGGER t_inserted AFTER INSERT ON comments
FOR EACH ROW
BEGIN
CALL update_posts();
END;
嗨,這基本上是一個很好的建議和正確的開始,但是你能否在這裏更具體一些,並提供一個工作的例子?您的示例看起來像是在添加評論時對所有帖子執行更新。但是,OP想知道如何在添加新評論時增加特定帖子的值。 – tiguchi
如何申請這個我的問題?從插入的評論中獲取post_id看起來像是一個挑戰 – user2798694
您提到的評論表只有一個名爲post_id的列。你在問如何解析並從發佈的評論中提取一個值? – ucsunil