如何使用php和oracle数据库创建具有自动生成值的列

时间:2014-03-13 11:37:35

标签: php database oracle

我有一张名字' 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 请帮我。亲切的问候

2 个答案:

答案 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;

分享并享受。