oracle 建表 主键自增序列/////

时间:2023-03-08 22:54:00
oracle 建表 主键自增序列/////

oracle 建表 主键自增序列

(2011-10-12 11:59:22)

标签:

杂谈

分类: oracle

SQL> create table sms_activity(
  2  id number,
  3  activity_name varchar2(50),
  4  begin_time varchar2(30),
  5  end_time varchar2(30),
  6  content varchar2(600)
  7  );

表已创建。

SQL> commit;

提交完成。

SQL> alter table sms_activity add primary key (id);

表已更改。

SQL> commit;

提交完成。

SQL> create sequence sms_activity_seq
  2  minvalue 1
  3  maxvalue 9999999999
  4  increment by 1
  5  cache 20
  6  ;

序列已创建。

SQL> create or replace trigger bi_activity
  2  before insert on sms_activity
  3  for each row
  4  begin
  5  select sms_activity_seq.nextval into :NEW.ID from dual;
  6  end;
  7  /

触发器已创建

SQL> desc sms_activity
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 ID                                        NOT NULL NUMBER
 ACTIVITY_NAME                                      VARCHAR2(50)
 BEGIN_TIME                                         VARCHAR2(30)
 END_TIME                                           VARCHAR2(30)
 CONTENT                                            VARCHAR2(600)

SQL> alter table sms_activity add (create_time varchar2(30),createby varchar2(20),modify_time varchar2(30),modifyby varchar2(20));

表已更改。

SQL> commit;

====================================================

Oracle创建表和主键自增

来源:
Oracle创建表和主键自增 创建表: create table tuser( id number(11) not null, name varchar2(20) not null, password varchar2(20), birthday date, constraint tuser_pk primary key (id) ); 创建序列: create sequence increase_seq incre
-
  Oracle创建表和主键自增    创建表:
    create table tuser(
    id number(11) not null,
    name varchar2(20) not null,
    password varchar2(20),
    birthday date,
    constraint tuser_pk primary key (id)
    );
    创建序列:
    create sequence increase_seq increment by 1 start with 1 nomaxvalue nocycle cache 10;
    创建trigger:
    create or replace trigger tuser_trigger
    before insert on tuser for each row
    begin
    select increase_seq.nextval into :new.id from dual;
    end;
    /
    根据使用的工具,可能需要增加“/”来执行PL/SQL块。
    测试:
    insert into tuser(name,password,birthday) values('wujay','123456',null);
    commit;
    select * from tuser;
    ID NAME                 PASSWORD             BIRTHDAY
    ---------- -------------------- -------------------- --------------
    1 wujay                123456
    修改表:
    alter table tuser rename column id to pk_tuser;