我做了一个表格和四个序列。(一列一个序列,一列三个序列。)
CREATE TABLE abc (
  whole_number VARCHAR2(100) primary key,
  board_number VARCHAR2(100),
  board VARCHAR2(100),
  content VARCHAR2(100)
);
CREATE SEQUENCE whole_seq
  MINVALUE 1
  NOMAXVALUE
  INCREMENT BY 1 START WITH 1 
;
CREATE SEQUENCE notify_seq
  MINVALUE 1
  NOMAXVALUE
  INCREMENT BY 1 START WITH 1 
;
CREATE SEQUENCE product_seq
  MINVALUE 1
  NOMAXVALUE
  INCREMENT BY 1 START WITH 1 
;
CREATE SEQUENCE guide_seq
  MINVALUE 1
  NOMAXVALUE
  INCREMENT BY 1 START WITH 1 
;
我想创建一个过程,为每行的 Whole_number 列添加 Whole_seq,如果 board 列获得“guide”,则为 board_number 列添加guide_seq。如果 board 列获得“notify”,则为 board_number 列发送 notification_seq。
现在已经完成了针对 Whole_number 列的一个过程。
CREATE OR REPLACE TRIGGER whole_number_trigger 
  BEFORE INSERT 
  ON abc FOR EACH ROW
  BEGIN
  SELECT whole_seq INTO :new.whole_number FROM dual;
END;  
/
有人可以帮我制作一个程序,根据 ORACLE 中 board 列的值获得不同的顺序吗?另外,有没有办法在 Whole_number 列的序列号之前添加字符串“Board_”?
小智 5
CREATE OR REPLACE TRIGGER whole_number_trigger 
  BEFORE INSERT 
  ON abc FOR EACH ROW
  BEGIN
  SELECT 'Board_' || whole_seq.nextval INTO :new.whole_number FROM dual;
  IF :new.board = 'guide' THEN 
    SELECT guide_seq.nextval INTO :new.board_number FROM dual;
  ELSIF   :new.board = 'notify' THEN 
    SELECT notify_seq.nextval INTO :new.board_number FROM dual;
  END IF;
END;  
/