0
我想創建一個觸發器,每次向USERS表插入一個觸發器,這些觸發器會向BALANCES表中插入幾個條目,SQL_COINS_VIEW視圖中存在每個硬幣ID的一個條目(希望我很清楚)。這個想法是,每創建一個賬戶,它就得到列表中每個可用硬幣的餘額爲0。用多個插入內部的遊標創建觸發器
我想這一點 -
CREATE or REPLACE TRIGGER update_balances
AFTER INSERT
ON USERS
FOR EACH ROW
DECLARE
v_userid number(8);
cursor coinlist_cur is
select ID from SQL_COINS_VIEW;
BEGIN
select ID into v_userid from USERS;
For coinid in coinlist_cur
loop
insert into balances
(BALANCES_ID_SEQ.NEXTVAL,v_userid,coinid,0);
end loop;
END;
,但我得到一個錯誤 -
Error(10,1): PL/SQL: SQL Statement ignored
Error(11,42): PL/SQL: ORA-01747: invalid user.table.column, table.column, or column specification
表是結構這樣 -
SQL> desc SQL_COINS_VIEW;
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NOT NULL NUMBER(10)
NAME NOT NULL VARCHAR2(50)
VALUE NOT NULL NUMBER(18,6)
UPDATETIME NVARCHAR2(10)
SQL>
SQL> desc USERS;
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NOT NULL NUMBER(8)
LOGINNAME NOT NULL VARCHAR2(12)
PASSWORD NOT NULL VARCHAR2(12)
EMAIL NOT NULL VARCHAR2(50)
PHONENUMBER VARCHAR2(25)
SQL>
SQL> desc BALANCES;
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NOT NULL NUMBER(12)
USERID NOT NULL NUMBER(8)
COINID NOT NULL NUMBER(10)
AMOUNT NOT NULL NUMBER(30)
我怎樣才能正確地創建這個觸發器?
在此先感謝。
詛咒你,紅男爵! :-)和+1 - 我只是想指出...... –