Oracle 12c的自增列Identity Columns
在Oracle的12c版本中,Oracle实现了类似MySQL中的auto_increment的自增列,下面我们看一起Oracle是怎么实现的。
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> create table t (userid number GENERATED ALWAYS AS IDENTITY,uname varchar2(200));
Table created.
SQL> select * from t;
no rows selected
SQL> insert into t valuse('aaa');
insert into t valuse('aaa')
*
ERROR at line 1:
ORA-00928: missing SELECT keyword
SQL> insert into t values(1,'aaa');
insert into t values(1,'aaa')
*
ERROR at line 1:
ORA-32795: cannot insert into a generated always identity column
SQL> insert into t values('aaa');
insert into t values('aaa')
*
ERROR at line 1:
ORA-00947: not enough values
SQL> insert into t(uname) values('aaa');
1 row created.
SQL> insert into t(uname) values('bbb');
1 row created.
SQL> insert into t(uname) values('ccc');
1 row created.
SQL> select * from t;
USERID UNAME
---------- ------------------------------
1 aaa
2 bbb
3 ccc
使用metadata包可以看到表的DDL
SQL> select dbms_metadata.get_ddl('TABLE','T') FROM DUAL;
CREATE TABLE "SYS"."T"
( "USERID" NUMBER GENERATED ALWAYS AS IDENTITY MINVALUE 1 MAXVALUE 9999999
999999999999999999999 INCREMENT BY 1 START WITH 1 CA
CHE 20 NOORDER NOCYCLE NOT NULL ENABLE,
"UNAME" VARCHAR2(200)
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 214748364
5
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CAC
HE DEFAULT)
TABLESPACE "SYSTEM"
仔细看其实这个自增列就是序列的语法,其实内部来讲就是一个序列。
转载自:
http://blog.itpub.net/26390465/viewspace-1816492/
Oracle 12c的自增列Identity Columns的更多相关文章
- oracle 实现插入自增列(类似SqlServer Identity)
oracle不像sql server 有关键字identity直接可插入数据时自增 ,Oracle是不能用Identity,可以使用Sequence Create Table Tempinfo( id ...
- [转]oracle 实现插入自增列
本文转自:http://blog.csdn.net/love_zt_love/article/details/7911104 刚使用oracle,它和sql server 好多地方还是有所不同的,简单 ...
- Oracle 12C -- 基于sequence的列的默认值
12C支持先创建一个sequence,然后再将该sequence指定为某个列的值的默认表达式. 和"identity column"具有以下不同点: ·对列的个数没有限制 ·seq ...
- oracle 12c中的隐含列
Invisible Columns 使用select * from ,desc 等看不到该列, DROP TABLE tab1 PURGE; CREATE TABLE tab1 ( id NUMB ...
- Oracle 12C -- 在相同的列的集合上创建多个索引
在12C中,可以在相同的列的集合上创建多个索引,但是多个索引的类型要不同.同一时刻,只有一个是可见的. SQL> create table emp_tab as select * from em ...
- ORACLE表建立自增列
create tablespace studentDBdatafile 'E:\datafiles_1.dbf' size 10m; create user Huang_Ying_Boidentifi ...
- Oracle自增列
一.介绍: 在设计数据库时,有时候希望表的某一列为自增列,例如编号,本文就介绍如何在oracle数据库中实现自增列,需要两个步骤: 1)构建序列(sequence) 在oracle中sequence就 ...
- Oracle自增列创建方法
最近在做Oracle的项目,由于以前没有接触过Oracle的开发,遇到了不少的问题,比如给Oracle表添加自增列,与SQL Server就不同. Oracle没有自增字段这样的功能,但是通过触发器( ...
- SQL SERVER 自增列的方法
declare @Table_name varchar(60) set @Table_name = ''; if Exists(Select top 1 1 from sysobjects ...
随机推荐
- 网络通信框架:Netty和Mina
参考: https://www.cnblogs.com/wrencai/p/5907042.html https://blog.csdn.net/qq_29954971/article/details ...
- AtCoder Regular Contest 103 E Tr/ee
Tr/ee 思路:按照下图所示连接 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #inclu ...
- Linux 各种软件的安装 - svn
首先感谢这篇博文 https://www.cnblogs.com/mymelon/p/5483215.html 按照他的配置,svn顺利搭好. 1:yum -y install subversion ...
- every day a practice —— morning(4)
If there’s one thing New Yorkers love more than discovering a new secret remedy, it’s telling other ...
- 基于BindingSource的WinForm开发
BindingSource控件介绍 BindingSource控件介绍 BindingSource控件是.NET Framework 2.0提供的新控件之一.BindingSource控件与数据源建立 ...
- ActiveSupport::Concern 和 gem 'name_of_person'(300✨) 的内部运行机制分析
理解ActiveRecord::Concern: 参考:include和extend的区别: https://www.cnblogs.com/chentianwei/p/9408963.html 传统 ...
- apicloud 聊天输入框模块UIChatBox
点击链接查看详情 https://docs.apicloud.com/Client-API/UI-Layout/UIChatBox 模板中包括,聊天输入框,表情,发送图片,还有拍照,录音,其中也可以放 ...
- Linux 权限管理命令
第四章(二)权限管理命令 Linux常用命令(二)权限管理命令
- VitrualBox、vagrant、homestead的关系
VitrualBox 是一款非常强大的免费虚拟机软件,使用者可以在 VitrualBox 上安装并运行 Linux.Windows.Mac OS X 等操作系统,类似的软件还有 VMware Vagr ...
- IDEA中部署tomcat,运行JSP文件,编译后的JSP文件存放地点总结
首先保证你正常部署了Tomcat,并且正常在浏览器中运行了JSP文件. 那么Tomcat编译后的JSP文件(_jsp.class 和 _jsp.java)的存放地点: (一)一般存放在你安装的Tomc ...