我有一张名字' stock'在oracle数据库中,我有列' item',' company',' purchase',' sale'等等。我正在使用php制作表单并通过此表单在oracle数据库中插入值。就像这样 '项目' '公司' '购买' '销售' 钱包abc 200 230 vallet def 100 120
我想要的是有一个专栏' id'当我插入这样的新行时,它应该自动生成值 ' ID'(自动生成)' item' '公司' '购买' '销售' 1钱包abc 200 230 2 vallet def 100 120 3 vallet def 50 120 4 vallet def 70 120 请帮我。亲切的问候
答案 0 :(得分:1)
你需要的是序列。在Oracle DB中创建自动递增数字是一件事。 并that's如何创建它们。 但是,您需要将其链接到您的列。您应该像这样创建触发器:
CREATE OR REPLACE TRIGGER tableIdTrigger
BEFORE INSERT ON tabname FOR EACH ROW
BEGIN
SELECT seqname.NEXTVAL into :NEW.id FROM DUAL;
END tableIdTrigger;
/
答案 1 :(得分:0)
在Oracle中,您需要创建一个序列,然后使用INSERT触发器从序列中获取值并填充表中的ID列,如:
CREATE SEQUENCE STOCK_ID_SEQ;
CREATE TRIGGER STOCK_BEFORE_INSERT_TRIGGER
BEFORE INSERT ON STOCK
FOR EACH ROW
BEGIN
IF :NEW.ID IS NULL THEN
:NEW.ID := STOCK_ID_SEQ.NEXTVAL;
END IF;
END STOCK_BEFORE_INSERT_TRIGGER;
分享并享受。