Oracle的笔记(一)


2 观看次数
126 字数
0 评论

业务上的需要用到Oracle(完全没有用过)!!!!!!
下面是部分经验:

表主键ID自增

  • 第一种触发器:

建表:

CREATE TABLE "TF_ECP_ORDER_PRE_ACCEPTED" (
  "id" NUMBER NOT NULL ,
  "accept_json" VARCHAR2(255 BYTE) ,
  "weborder" VARCHAR2(17 BYTE) ,
  "accept_date" DATE ,
  "ext_custid" NUMBER 
);

创建序列:

PRE_ACCEPTED_ID_SEQ:序列名
MINVALUE:自增字段最小值
NOMAXVALUE:最大值 没有就算nomaxvalue
INCREMENT BY:每次增值1
START WITH:每次增值1
NOCACHE:不缓存

CREATE SEQUENCE PRE_ACCEPTED_ID_SEQ MINVALUE 1 NOMAXVALUE INCREMENT BY 1 START WITH 1 NOCACHE;

创建触发器:

PRE_ACCEPTED_trigger:触发器名
TF_ECP_ORDER_PRE_ACCEPTED:表名
EACH ROW:每一行
INTO:INSERT 插入操作生效

CREATE OR REPLACE TRIGGER PRE_ACCEPTED_trigger BEFORE INSERT ON TF_ECP_ORDER_PRE_ACCEPTED FOR EACH ROW 
BEGIN
SELECT PRE_ACCEPTED_ID_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
END;
  • 第二种

利用Mybits

<selectKey keyProperty="id" resultType="long" order="BEFORE">
            <![CDATA[
                SELECT PRE_ACCEPTED_ID_SEQ.NEXTVAL FROM DUAL
            ]]>
</selectKey>

从序列表中查出ID,插入的时候INSERT进去


会用到的语句:

  • 查询对应的触发器
SELECT
    trigger_name 
FROM
    all_triggers 
WHERE
    table_name = 'TF_ECP_ORDER_PRE_ACCEPTED';
  • 查询对应的序列:
SELECT
    * 
FROM
    user_sequences 
WHERE
    sequence_name = 'PRE_ACCEPTED_ID_SEQ'

评论区

还没有人评论

添加新评论