ech*_*aze 7 sql oracle triggers
我尝试使用以下,但显然它是无效的SQL:
CREATE OR REPLACE TRIGGER QUESTION_DATE BEFORE INSERT ON QUESTION
FOR EACH ROW
BEGIN
INSERT INTO QUESTION(CREATED_TIMESTAMP)
VALUES (SYSDATE);
END;
Run Code Online (Sandbox Code Playgroud)
到目前为止,问题表看起来像这样:
CREATE TABLE QUESTION
(
QUESTION_ID INTEGER not null,
LATEST_QUESTION INTEGER not null,
CREATED_USER_ID INTEGER not null,
CREATED_TIMESTAMP TIMESTAMP not null,
CONSTRAINT PK_QUESTION PRIMARY KEY (QUESTION_ID)
);
CREATE SEQUENCE QUESTION_ID_SEQ INCREMENT BY 1 START WITH 1 NOCYCLE NOCACHE NOORDER;
CREATE TRIGGER QUESTION_INSERT BEFORE INSERT ON QUESTION
FOR EACH ROW
BEGIN
SELECT QUESTION_ID_SEQ.nextval
INTO :new.QUESTION_ID
FROM dual;
END;
Run Code Online (Sandbox Code Playgroud)
如果那是相关的,我正在使用Toad for Oracle V9.0.1.8
DwB*_*DwB 18
不要使用触发器在Oracle中设置默认值.而是在列上使用"DEFAULT".这是一个简短的专栏
CREATED_TIMESTAMP TIMESTAMP DEFAULT SYSDATE NOT NULL,
Run Code Online (Sandbox Code Playgroud)
Ton*_*ews 12
我想你可能想要这个:
CREATE OR REPLACE TRIGGER QUESTION_DATE BEFORE INSERT ON QUESTION
FOR EACH ROW
BEGIN
:NEW.CREATED_TIMESTAMP := SYSDATE;
END;
Run Code Online (Sandbox Code Playgroud)
你的触发器试图在QUESTION中插入另一行,这会触发触发器......
归档时间: |
|
查看次数: |
29528 次 |
最近记录: |