我正在將我的Oracle數據庫遷移到MariaDB,並且我不確定如何在其中一個表上創建自引用標識。基本上,如果沒有指定belongs_to_id
,它將假定它屬於它自己(並且與生成的ID相同ON INSERT
)。然而,如果指定belongs_to_id
,那麼它將使用它。從Oracle遷移到MariaDB - 觸發器,自引用表
我這樣做的原因是因爲我有帖子和回覆存儲在同一張表中。如果id
= belongs_to_id
那麼它是一個啓動帖子,而如果它不同,它是對另一個帖子的回覆。
我想過讓我的應用程序(Node JS)使用last_insert_id快速地執行UPDATE
- 但它看起來相當混亂,如果可能,我想避免這種情況。
這是我在Oracle中使用的 - 有誰知道我如何在MariaDB中複製這個?
CREATE OR REPLACE TRIGGER my_trigger
BEFORE INSERT ON my_table
FOR EACH ROW
BEGIN
:new.id := my_sequence.NEXTVAL;
:new.belongs_to_id := NVL(:new.belongs_to_id,:new.id);
END;
/
這應該對MariaDb有效,你試過了嗎? – kevinsky
不!我認爲它不會... Maria DB是否理解Oracle PL/SQL? – doublesidedstickytape