oracle创建表相关


 1 --创建表
 2 create table person(
 3 id number primary key,
 4 name varchar2(40),
 5 birth date
 6 );
 7 --创建序列
 8 create sequence person_id_seq
 9 increment by 1
10 start with 1
11 nomaxvalue --不设置最大值
12 nocycle  --一直累加,不循环
13 cache 10;
14 --创建触发器
15 create or replace trigger person_id_tri before insert on person
16 for each row
17 declare
18 v_newVal number(12) := 0;
19 v_incval NUMBER(12) := 0;
20 BEGIN
21   IF INSERTING AND :new.id IS NULL THEN
22     SELECT  person_id_SEQ.NEXTVAL INTO v_newVal FROM DUAL;
23     -- If this is the first time this table have been inserted into (sequence == 1)
24     IF v_newVal = 1 THEN 
25       --get the max indentity value from the table
26       SELECT NVL(max(id),0) INTO v_newVal FROM person;
27       v_newVal := v_newVal + 1;
28       --set the sequence to that value
29       LOOP
30            EXIT WHEN v_incval>=v_newVal;
31            SELECT person_id_seq.nextval INTO v_incval FROM dual;
32       END LOOP;
33     END IF;
34     --used to emulate LAST_INSERT_ID()
35     --mysql_utilities.identity := v_newVal; 
36    -- assign the value from the sequence to emulate the identity column
37    :new.id := v_newVal;
38   END IF;
39 END;
40 
41 --简单触发器,上面触发器有问题,序列被跳过
42 create or replace trigger person_id_tri before insert on person
43 for each row when(new.id is null)
44 BEGIN
45 select person_id_seq.nextval into :new.id from dual;
46 end;
47 
48 --插入实例
49 insert into person(name, birth) values('ceshi',sysdate);
50 --错误的时间格式
51 insert into person(name,birth) values('hehe','2015-06-02 00:00:00');
52 --正确的插入日期
53 insert into person(name,birth) values('hehe',to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss'));
54 insert into person(name,birth) values('hehe',to_date('2005-01-01','yyyy-MM-dd'));
55 
56 --oracle 中日期的格式化
57 select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual;
58 
59 --查询表
60 select * from person ;
61 
62 --截断表
63 truncate table person;

优质内容筛选与推荐>>
1、Leetcode 179.最大数
2、Understand CSS Terminology
3、2010年IT行业十大预测:Google面临威胁
4、DatePicker - 日期选择插件
5、asp.net设置默认上传文件大小


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号