[20130901]12C在表中使用sequence(补充).txt

[20130901]12C在表中使用sequence(补充).txt

对以前写的内容做一些补充。

SQL> @ver

BANNER                                                                               CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production              0

1.测试1:
drop table t purge ;
create table t
(
id number GENERATED by default as identity ( start with 1 increment by 1),
name varchar2(10)
);

SQL> insert into t values (1,'a');
1 row created.

SQL> insert into t (name) values ('b');
1 row created.

SQL> commit ;
Commit complete.

SQL> insert into t (name) values ('c');
1 row created.

SQL> select * from t;
        ID NAME
---------- --------------------
         1 a
         1 b
         2 c

--可以发现如果定义GENERATED by default as identity,值是可以重复的,并且插入时可以显示的定义值。

2.测试2:
SQL> drop sequence seq1 ;
Sequence dropped.

SQL>  CREATE SEQUENCE SCOTT.seq1 START WITH 10 INCREMENT BY 1 MINVALUE 10 CACHE 100 NOCYCLE ORDER ;
Sequence created.

SQL> CREATE TABLE T1
(
  ID    NUMBER  DEFAULT seq1.nextval NOT NULL,
  NAME  VARCHAR2(10 BYTE)
);

SQL> insert into t1  values (1,'a');
1 row created.

SQL> insert into t1 (name) values ('b');
1 row created.

SQL> commit ;
Commit complete.

SQL> select * from t1;
        ID NAME
---------- --------------------
         1 a
        10 b

3.看看这种定义在11g下是否可行:

SCOTT@test> @ver
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

SQL> CREATE TABLE T1
(
  ID    NUMBER  DEFAULT seq1.nextval NOT NULL,
  NAME  VARCHAR2(10 BYTE)
);
                        *
ERROR at line 3:
ORA-00984: column not allowed here

--11G不支持这种定义!

时间: 2024-09-30 08:36:54

[20130901]12C在表中使用sequence(补充).txt的相关文章

[20130803]12C在表中使用sequence.txt

[20130803]12C在表中使用sequence.txt 记得以前学习数据库的时候,第1个接触的数据库是informix,里面可以在表上定义顺序号,这样在插入时无需指定,保证唯一.(也许记忆有错,毕竟很久没使用它了).oracle 12c开始支持这种特性,我的感觉这些主要为了别的数据库移植到oracle上来. 做一个测试看看: SQL> @ver BANNER                                                                   

利用groovy把表中数据导出成txt或csv

胶水语言就是胶水,写起也挺快的.这个脚本主要是从数据库中把表中的数据导出来生成文件.而不用每次都打开数据库编辑器去手工收集.然后结合强大的脚本(shell,bat)等基本就可以实现定时生成最新数据文本了. 目前这个groovy脚本只要输入sql语句,便会自动去反射表中的字段和类型.脚本名称:export.groovy import groovy.sql.Sql; try { if(this.args.size()<1) {     println "格式错误!请参照下面的正确格式"

在MSSQL中实现Sequence功能

目的: 通过该功能取代 MSSQL 中的表ID列自动递增功能   主题一:如何通过Sequence名得到一个Sequence值 方法: 1.    创建一个表Sequence,保存Sequence的值 2.    创建一个存储过程GetNextSequence,以通过它得到下一个Sequence 主题二:如何通过一个表名得到一个Sequence值 1.    创建一个表TableSequence,保存表中的列对应的是哪个Sequence 2.    创建一个存储过程CreateTableSeq,

ORACLE中序列-sequence的应用

oracle oracle中没有象Acces中自动编号的字段类型,所以在oracle中要想用一个字段自动增值,还比较麻烦,在此提供给大家一个方法,利用序列,来完成字段的自动增加,下边介绍一下怎么创建序列,使用序列,和删除序列. 1.创建序列--------------create sequence  create sequence  Seq_AutoID   //所起序列名叫 Seq_AutoID ,需要记住此序列名,以后方可调用 minvalue   1   //最小值从1开始 可以根据自己的

看实例学VFP:同时向两个表中添加记录

本文利用看实例学VFP:利用多个表中的字段创建新表这个实例中的知识来制作一个文本式录入表单的简单示例,通过这个表单可以同时向"数据1"数据库中的"网站信息表"和"附加信息表"这两个表中添加记录,并且对录入的数据可以选择"保存"."添加"或"撤消".这两个表的索引字段分别是"编号"和"网站编号",这两个字段的内容是完全相同的,只是分别处于两个表中,并

select-oracle将查询的结果再存入到另一个表中,如何写sql或者说怎么实现

问题描述 oracle将查询的结果再存入到另一个表中,如何写sql或者说怎么实现 具体如select count(*) from test3;(test3表里面有8条数据) 将这个结果再insert到另一张表中.我试着写了 insert into sum select count(*) from test3;这个但是插入的数据不是8而是1,很郁闷 解决方案 insert into 目标表(字段列表) select 字段列表 from 原始表 能达到你的需求 解决方案二: count(*)是取多少

批量将数据表中原有的数据稍微变更再插入本表中

问题描述 批量将数据表中原有的数据稍微变更再插入本表中 表A中有以下字段,A_id,A_user_id,A_func_code,现在表A中有以下数据 A_id A_user_id A_func_code 1 张三 111 2 张三 222 3 张三 333 现在要表A中再插入数据,数据要求 要求为A_user_id等于张三的再插入时张三变更为李四 A_id为 sequence,大致描述如此,实际数据中不止这几个字段,数据也不止三条 等于说就是把原表中的A_user_id的数据再插入到本表中,只是

查询一张表中两个字段重复的数据并得到其主键?

问题描述 希望各位路过的大侠 帮小弟一把.感激不尽. 如何查询一张表中两个字段都重复的数据以及每组中的第一条数据的主键? 情况如下: A表: a1 a2 a3  a4   都列a1     a2            a3                  a41       m              n                   o2       m              n                   k3       j                k     

《Hadoop实战手册》一1.10 在Greenplum外部表中使用HDFS

1.10 在Greenplum外部表中使用HDFS Greenplum是一个并行数据库,数据的存储与查询基于一个或多个PostgreSQL实例.它补充了Hadoop,提供对大数据的实时或准实时访问,它还支持使用HDFS文件作为外部表.外部表是一个处理Greenplum集群之外数据很好的解决方案.由于外部表访问首先要消耗网络带宽,所以与Greenplum集群内的数据相比,它应该存储那些访问相对不频繁的数据.本节将介绍如何创建只读的外部表和可读写的外部表. 准备工作 在本节假定你使用的Hadoop版