`
newObject
  • 浏览: 23795 次
  • 性别: Icon_minigender_2
  • 来自: 济南
社区版块
存档分类
最新评论

oracle自增序列

 
阅读更多
创建自增序列
CREATE   SEQUENCE   SEQname
  INCREMENT   BY     1
  START   WITH     1
  MAXVALUE     99999999

CREATE  or replace TRIGGER   TRGname
BEFORE     INSERT     ON   userinfo
FOR   EACH   ROW
Begin
      SELECT   SEQname.NEXTVAL
          INTO   :NEW.customerid
          FROM   DUAL;
End;

CREATE or replace  TRIGGER   tr_trade
BEFORE     INSERT     ON   tradeinfo
FOR   EACH   ROW
Begin
      SELECT   SEQname.NEXTVAL
          INTO   :NEW.tid
          FROM   DUAL;
End;

CREATE or replace  TRIGGER   tr_type
BEFORE     INSERT     ON   tradetype
FOR   EACH   ROW
Begin
      SELECT   SEQname.NEXTVAL
          INTO   :NEW.transid
          FROM   DUAL;
End;

创建银行卡号
CREATE or replace  TRIGGER   card_id
BEFORE     INSERT     ON   cardinfo
FOR   EACH   ROW
Begin
      SELECT   '1010 3576 '||lpad(to_char(trunc(dbms_random.value(0,9999))),4,'0')||' '||lpad(to_char(trunc(dbms_random.value(0,9999))),4,'0')
          INTO   :NEW.cardid
          FROM   DUAL;
End;

测试语句
insert into userinfo(customername,pid,telephone) values('王法英','370126199003092128','15253503967')
select * from userinfo
insert into cardinfo(savingid,openmoney,balance,password,customerid) values('定期',1,1,123456,2)
select * from cardinfo

select * from tradetype
insert into tradetype(transname) values('转账');
insert into tradetype(transname) values('存款');
insert into tradetype(transname) values('取款');
insert into tradetype(transname) values('手机缴费');
insert into cardinfo(savingid,openmoney,balance,customerid) values('定期',1,1,13);

insert into cardinfo(savingid,openmoney,balance,customerid) values('定期',1,1,14);
修改客户密码

update cardinfo set password='123456' where customerid=13

办理银行卡挂失

update cardinfo set isreportloss='是' where customerid=13

查询本周开户的卡号,显示该卡相关信息


select * from cardinfo where opendate>=sysdate-7 and opendate<=sysdate

查询本月交易金额最高的卡号

select cardid from tradeinfo where transmoney =
(select max(transmoney) from tradeinfo
where transdate>=to_date(to_char(sysdate,'yyyymm'),'yyyymm') and transdate<=sysdate)

查询挂失账号的客户信息
select * from userinfo where customerid in(
       select customerid from cardinfo where isreportloss='是'
)

客户基本信息:v_userInfo

create or replace view v_userinfo as
select customerid 用户编号,customername 用户名,pid 身份证号,telephone 电话,address 地址
from userinfo;

select * from v_userinfo


银行卡信息:v_cardInfo
create or replace view v_cardinfo as
select cardid 银行卡号,curid 货币类型,savingid 存款类型,opendate 开户时间,openmoney 开户金额,
  balance 余额,password 密码,isreportloss 是否挂失,customerid 客户编号
from cardinfo;

select * from v_cardinfo



银行卡交易信息:v_tradeInfo

create or replace view v_tradeinfo as
select tid 交易号,transdate 交易时间,tradetype.transname 交易类型,
  transmoney 交易金额,transcardid 交易对象,remark 备注
from tradeinfo,tradetype where tradeinfo.transid=tradetype.transid;

select * from v_tradeinfo


查询、统计指定时间段内没有发生交易的账户信息
create or replace procedure user_no_trade(
       overDate in date,
       startDate in date
)
is
cursor cursor_test is select * from cardinfo where transdate>=startDate and transdate<=overDate
and cardid not in(
    select distinct cardid from tradeinfo
);
row_test tradeinfo%rowtype;
begin
       for row_test in cursor_test loop
       dbms_output.put_line(row_test.cardid||'||'||row_test.curid||'||'||row_test.opendate||'||'||row_test.openmoney
       ||'||'||row_test.balance||'||'||row_test.isreportloss||'||'||row_test.custeomerid);
       end loop;
end;
分享到:
评论

相关推荐

    Oracle自增序列和触发器生成工具.zip

    本压缩包"Oracle自增序列和触发器生成工具"提供了一种便捷的方式,帮助开发者快速生成这些必要的数据库对象,从而提高开发效率。 首先,让我们了解什么是Oracle自增序列。在Oracle中,序列(SEQUENCE)是一种特殊的...

    MyBatis Oracle 自增序列的实现方法

    在Oracle数据库中,由于没有像MySQL的`auto_increment`或者SQL Server的`IDENTITY`这样的内置机制,所以自增序列的实现通常需要借助于Oracle的`SEQUENCE`对象。MyBatis,作为一个强大的ORM(对象关系映射)框架,...

    如何实现Oracle自增,序列,触发器都有

    在Oracle数据库中实现主键自增功能可以通过创建序列(sequence)与触发器(trigger)相结合的方式实现。这种方式不仅能够确保数据表中的主键唯一性,还能自动递增,极大地简化了开发人员的工作。 #### 创建Sequence...

    oracle通过触发器,实现序列自增

    ### Oracle通过触发器实现序列自增 在Oracle数据库中,序列是一种非常实用的对象,它可以用于自动产生唯一的数值。本文将详细介绍如何通过触发器与序列相结合的方式,在Oracle数据库中实现记录的自增功能。 #### ...

    ORACLE自增主键设置方法

    ### ORACLE自增主键设置方法 在Oracle数据库中,自增主键是一种常见的主键设计方式,它能够确保每条记录的唯一性,并且在插入新记录时自动递增,简化了数据管理流程。本文将详细介绍如何在Oracle中设置自增主键。 ...

    oracle迁移mysql自增序列问题

    本问题主要涉及从Oracle迁移到MySQL时,如何处理自增序列(Identity或Sequence)的兼容性问题。Oracle数据库中,自增序列通常通过Sequence对象实现,而MySQL则通过在表定义中设置`AUTO_INCREMENT`属性来实现自增主键...

    oracle中设置自增主键参考

    #### 创建表与自增序列 在创建表时,我们首先需要定义一个数字类型的字段作为主键,并设置为`NOT NULL`以确保该字段不能为空。然后,通过创建一个自增序列来实现自增功能。例如: ```sql CREATE TABLE example ( ...

    Oracle使用序列创建自增字段

    ### Oracle 使用序列创建自增字段 在数据库设计与开发中,自增字段是十分常见的需求之一,尤其是在需要为每一行记录自动分配一个唯一编号的情况下。Oracle 数据库通过序列(Sequence)这一特性支持自增字段的实现。...

    Oracle建立自增主键

    ### Oracle建立自增主键 在Oracle数据库管理中,创建自增主键是一种常见的需求,尤其是在需要自动为表中的每一行记录分配一个唯一标识符的情况下。本文将详细介绍如何利用Oracle提供的`SEQUENCE`和`TRIGGER`来实现...

    powerdesigner创建oracle_数据库表,设置表主键列为自动增长

    - 观察主键列是否按预期自增。 示例SQL脚本: ```sql CREATE TABLE G_EC_LotteryCategory ( lcId NUMBER(3) NOT NULL, lcName NVARCHAR2(30), lcAbbr NVARCHAR2(20), CONSTRAINT PK_G_EC_LOTTERYCATEGORY ...

    sqlldr导入带有自动增加的数据

    在Oracle中,这通常是通过使用序列(sequence)来实现的。序列是一种对象,可以生成连续的整数,通常用于为主键或唯一标识字段提供值。 ### 示例分析 给定的代码示例展示了如何使用SQL*Loader将数据文件`b.txt`中...

    oracle生成动态前缀且自增号码的函数分享

    此外,提到了一些与Oracle自增字段相关的文章和方法,如使用触发器(Trigger)和序列(Sequence)模拟自增列,创建自增ID字段的步骤,以及使用序列和触发器的实例。这些方法都是在Oracle中实现自动递增数值的关键...

    oracle主键自增

    oracle 数据库主键自增脚本 --第一步,创建表 --第二步,创建自增序列 --第三步,创建触发器

    oracle实现属性的自增

    Oracle 数据库中实现属性的自增是通过序列和触发器来实现的。当给表中插入数据时触发触发器,触发器从序列中得到相应的数值放入相应的位置,这样实现属性的自增。 知识点一: Oracle 中没有 auto_increment 属性 ...

    Oracle在表上建立自增字段的方法

    本方法为使用SEQUENCE...  1、建立自增序列TEMP_TEST_IDADD,命名任意,从1开始,每次加1  CREATE SEQUENCE TEMP_TEST_IDADD INCREMENT BY 1 START WITH 1;  2、在表temp_test上建立触发器如下  CREATE OR REPL

    Oracle插入数据时获取自增ID

    ### Oracle插入数据时获取自增ID 在Oracle数据库中,当需要实现类似其他数据库系统(如MySQL、SQL Server等)中的自动增长字段功能时,通常会采用序列(sequence)和触发器(trigger)来实现这一需求。下面将详细...

    oracle数据库主键自增并且返回主键值

    一、创建序列 1.1、直接在PLSQL中设置 1.2、命令创建 create sequence seq_users ##创建序列seq_users increment by 1 ## 步长,每次加1 start with 1 ##从1开始 minvalue 1 ##最小值 maxvalue 9999999 ##最大值 ...

    Oracle中主键自增实例

    综上所述,Oracle虽然不像某些数据库那样提供直接的主键自增功能,但通过序列、触发器等工具,可以灵活地创建满足需求的自增主键。在设计数据库时,应考虑性能、并发控制和最佳实践,确保系统的稳定性和高效性。

    Oracle主键自增的办法

    通过这种方式,即使 Oracle 没有内置的自增字段,我们仍然可以利用序列和触发器来实现这一需求,确保数据的唯一性和一致性。这种方法适用于那些需要自动生成唯一标识符的情况,比如主键或业务流水号。需要注意的是,...

Global site tag (gtag.js) - Google Analytics