我正在寫一個腳本,它將向表中添加一個ID列,包括所有序列和觸發器以使其自動保持最新狀態。它將執行以下操作:在一個腳本中混合使用DDL語句和DML語句
- 添加一列一個表
- 創建序列
- 創建觸發器
- 更新現有行使用序列值
- 設置字段不可空
我遇到的問題是用粗體顯示的行 - 這將是一個UPDATE
DDL腳本中的語句。我得到的錯誤是:
PLS-00103:出現符號 「UPDATE」
我已經試過包裝在一個BEGIN
和END
塊UPDATE
,沒有成功。
是否可以在DDL腳本中包含UPDATE
語句?
這是我到目前爲止有:
ALTER TABLE RETAILER ADD (RETAILER_ID NUMBER);
CREATE SEQUENCE RETAILER_ID_SEQ;
CREATE OR REPLACE TRIGGER RETAILER_ADD_TRG
BEFORE INSERT ON RETAILER
FOR EACH ROW
BEGIN
SELECT RETAILER_ID_SEQ.NEXTVAL INTO :new.RETAILER_ID FROM dual;
END;
-- Doesn't like this part...
UPDATE RETAILER SET RETAILER_ID = RETAILER_ID_SEQ.NEXTVAL;
COMMIT;
ALTER TABLE RETAILER MODIFY (RETAILER_ID NOT NULL);
在create trigger語句後面需要'/':http:// stackoverflow。 com/a/10207695/330315 –
嗨@a_horse_with_no_name,你能寫這個答案,以便我可以接受嗎?乾杯。 – Eraph