oracle利用触发器为表生成自增长的主键
来源:互联网 发布:优化班子结构筑牢 编辑:程序博客网 时间:2024/06/07 18:48
create table t_account(
accountID number(8) not null,
accountName varchar(100) not null
)tablespace portalone;
alter table t_account add constraint pk_account primary key(accountID) using index tablespace portaloneindx;
--建序列
create sequence s_account
minvalue 1
maxvalue 99999999
start with 1
increment by 1
cache 20;
--建触发器
create or replace trigger trigger_t_account
before insert on t_account
for each row when(new.accountID is null)
declare
begin
--从序列中获取新的序号并赋给新行的ID字段
select s_account.nextval into :new.accountID from dual;
--获取系统的guid/uuid生成主键
--select sys.guid() into :New.accountID from dual;
--获取系统时间作为表的某个字段值
--select to_char(sysdate, "YYYY-MM")into :New.YEAR_MONTH from dual;
end trigger_t_account;
--建表t_order
drop table t_order;
create table t_order(
orderID number(8) not null,
accountID number(8) not null,
orderName varchar(100) not null
)tablespace portalone;
alter table t_order add constraint pk_order primary key(orderID) using index tablespace portaloneindx;
alter table t_order add constraint fk_order foreign key(accountID) references t_account(accountID);
--建立序列
create sequence s_order
minvalue 1
maxvalue 99999999
start with 1
increment by 1
cache 20;
--建触发器
create or replace trigger trigger_t_order
before insert on t_order
for each row when (new.orderID is null)
declare
begin
select s_order.nextval into :new.orderID from dual;
select s_order.currval into :new.accountID from dual;
end trigger_t_order;
--建表t_orderItem
drop table t_orderItem;
create table t_orderItem(
orderItemID number(8) not null,
orderID number(8) not null,
orderItemName varchar(100) not null
)tablespace portalone;
alter table t_orderItem add constraint pk_orderItem primary key(orderItemID) using index tablespace portaloneindx;
alter table t_orderItem add constraint fk_orderItem foreign key(orderID) references t_order(orderID);
--建序列
create sequence s_orderItem
minvalue 1
maxvalue 99999999
start with 1
increment by 1
cache 20;
--建触发器
create or replace trigger trigger_t_orderItem
before insert on t_orderItem
for each row when (new.orderItemID is null)
declare
begin
select s_orderItem.nextval into :new.orderItemID from dual;
select s_orderItem.currval into :new.orderID from dual;
end trigger_t_orderItem;
- oracle利用触发器为表生成自增长的主键
- oracle利用触发器和sequence实现主键自增长
- oracle使用序列和触发器使表主键自增长
- 为实现表的主键自增长,创建序列和触发器
- 获得ORACLE表的自增长主键
- oracle中利用序列和触发器创建自增长的表
- 通过序列和触发器实现Oracle主键自增长
- 利用触发器实现主键增长
- oracle主键自增长
- oracle 自增长主键
- oracle 自增长主键
- oracle主键自增长
- oracle主键自增长
- oracle主键自增长
- oracle主键自增长
- oracle主键自增长
- Oracle自增长主键
- Oracle主键自增长
- SharePoint2013文档库中 新建文档不能保存在SharePoint服务器上
- SecureCRT高级配置
- python 遍历目录
- C#中使用设置(Settings.settings) Properties.Settings.Default .
- ACM - 暑期第四天:动态规划
- oracle利用触发器为表生成自增长的主键
- 黑马程序员--03.Java面向对象--04.【对象初始化的过程】【对象调用成员的过程】
- Kidnapped——5、David comes home
- 移动互联网的七宗“最”
- 利用securecrt上传下载文件(超简单)
- FMDB
- Android ActionBar返回null的问题
- jadeclipse 反编译插件的安装和使用
- Sqlite 简单使用方法