oracle创建表相关
2015-10-10 18:18
302 查看
--创建表 create table person( id number primary key, name varchar2(40), birth date ); --创建序列 create sequence person_id_seq increment by 1 start with 1 nomaxvalue --不设置最大值 nocycle --一直累加,不循环 cache 10; --创建触发器 create or replace trigger person_id_tri before insert on person for each row declare v_newVal number(12) := 0; v_incval NUMBER(12) := 0; BEGIN IF INSERTING AND :new.id IS NULL THEN SELECT person_id_SEQ.NEXTVAL INTO v_newVal FROM DUAL; -- If this is the first time this table have been inserted into (sequence == 1) IF v_newVal = 1 THEN --get the max indentity value from the table SELECT NVL(max(id),0) INTO v_newVal FROM person; v_newVal := v_newVal + 1; --set the sequence to that value LOOP EXIT WHEN v_incval>=v_newVal; SELECT person_id_seq.nextval INTO v_incval FROM dual; END LOOP; END IF; --used to emulate LAST_INSERT_ID() --mysql_utilities.identity := v_newVal; -- assign the value from the sequence to emulate the identity column :new.id := v_newVal; END IF; END; --简单触发器,上面触发器有问题,序列被跳过 create or replace trigger person_id_tri before insert on person for each row when(new.id is null) BEGIN select person_id_seq.nextval into :new.id from dual; end; --插入实例 insert into person(name, birth) values('ceshi',sysdate); --错误的时间格式 insert into person(name,birth) values('hehe','2015-06-02 00:00:00'); --正确的插入日期 insert into person(name,birth) values('hehe',to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss')); insert into person(name,birth) values('hehe',to_date('2005-01-01','yyyy-MM-dd')); --oracle 中日期的格式化 select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual; --查询表 select * from person ; --截断表 truncate table person;
相关文章推荐
- oracle外键关联而无法删除数据
- 老师oracle讲义第三天
- oracle学习第一天
- oracle学习第二天
- oracle学习第三天
- oracle学习第四天
- 查看oracle执行计划(命令实现)
- 2 Administering Oracle Clusterware 管理Oracle集群
- 远程连接oracle服务器
- ORACLE统计信息搜集
- 远程连接oracle服务器
- Oracle-分页与集合查询
- Oracle-子查询
- 利用oracle dbms_scheduler执行windows的bat脚本加载数据
- oracle 11g 索引与分区的总结
- windows上设置自动删除oracle归档日志
- oracle按时间段查询
- Oracle11g读书笔记1----Oracle安全性1
- oracle适配器连接不上的解决办法
- 浅谈Oracle 11g 发行版2 新安装后关于登录的一些基本操作