2017-11-18 299 views
0

我有一個看起來像這樣的數據庫。不同表上的SQL觸發器

Current database

每當創建了新的用戶,該用戶(用戶名)的Id需要被存儲在預算表。在此之後,我希望在類別表中的類別中的預算表中填寫每個類別。

我現在類別表:

The data in the Category table

正如你所看到的,我現在有3個類別。是否可以創建一個循環通過類別的觸發器,並將Category.Id插入Budget.Category

預算表應該是這樣的一個用戶創建後:

Budget table after a user has been created

我不知道該怎麼給每個的categoryId添加到預算表。

+0

是的,你可以這樣做。從插入語句創建觸發器開始。 –

+0

我被卡在了必須循環分類的部分,並將每個分類添加到預算表中。 –

+0

觸發器是**高度特定於供應商的** - 所以請添加一個標籤以指定您是使用mysql,postgresql,sql-server,oracle還是db2,還是其他的東西。 –

回答

0

要插入值到budget表,代碼會是這個樣子:

insert into budget(UserId, CategoryId, Date, Value) 
    select new.userid, c.categoryId, current date, 0 
    from categories c; 

沒有foreach是必需的,但語法通過數據庫而異。特別是:

  • 當前日期的語法。
  • 訪問要插入的值的語​​法。