一直都是用sql server作为开发数据库,最近因为开发新的项目使用oracle数据库,我才开始学习oracle.
学习了一段时间,发现SQL Server和Oracle还是有这很大的差别。首先,我在SQL Server中用得很顺手的自增长字段就在ORACLE中找不到了,朋友说可以用序列可以实现,于是查阅资料,整理出如下示例:
方法一
1.建立测试数据表
CREATE TABLE TEST
(
ID NUMBER,
NAME VARCHAR2(20),
PRIMARY KEY(ID)
);
2.创建序列
CREATE SEQUENCE SEQ_TEST;
3.创建触发器
CREATE OR REPLACE TRIGGER AUTOINCREMENT
BEFORE INSERT ON TEST
FOR EACH ROW
WHEN (NEW.ID IS NULL)
BEGIN
SELECT SEQ_TEST.NEXTVAL INTO :NEW.ID FROM DUAL;
END;
/
4.插入数据
INSERT INTO TEST(NAME) VALUES('NAME1');
5.查看插入结果
SELECT * FROM TEST;
方法二
SQL Server,Sybase:
有个identity属性可以让系统自动增1
create table a
(
a1 int identity(1,1),
a2 varchar(6)
)
然后在insert时:
insert into a values('hello!'); --不用管a1,系统会自动增1
Oracle:
使用SEQUENCE(序列)可以达到要求
create table a
(
a1 int ,
a2 varchar2(6)
);
create SEQUENCE seq_a INCREMENT BY 1;
然后在insert时:
insert into a values(seq_a.nextval,'hello!'); --seq_a.nextval是该序列的下个值
分享到:
相关推荐
Flink1.14.4自定义flink-connector-jdbc连接SQLServer和SAP数据库
对有自增长字段的表导入数据注意事项: 1、把自增长字段暂时设置成非自增长的;导入数据成功后,再设置成自增长字段。 2、导出、导入数据时,注意选择文本格式,防止出现乱码、数据转换不成功等情况。 3、对于表中的...
如何把SQL上的一个数据库移植到Oracle中,包括了:创建Oracle表空间、授权、对于自增长字段的处理等等.
oracle数据库id为uuid类型时自动生成id的工具类,不再依赖sequence自增长
1、把主键定义为自动增长标识符类型MySql在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动...以上sql语句先创建了customers表,然后插入两条记录,在插入时仅仅设定了name字段的值。最后查询表中id字
10.4.2 MS SQL Server中的自动增长字段 10.4.3 Oracle中的自动增长字段 10.4.4 DB2中的自动增长字段 10.5 业务主键与逻辑主键 10.6 NULL的学问 10.6.1 NULL与比较运算符 10.6.2 NULL和计算字段 ...
ORACLE的数据字典是数据库的重要组成部分之一,它随着数据库的产生而产生, 随着数据库的变化而变化, 体现为sys用户下的一些表和视图。数据字典名称是大写的英文字符。 数据字典里存有用户信息、用户的权限信息、...
在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据 在selecte统计函数中的字段,不能和普通的字段放在一起; 13、对数据库进行操作: 分离数据库: sp_detach_db; 附加数据库:sp_attach_db 后...
10.4.2 MS SQL Server中的自动增长字段 10.4.3 Oracle中的自动增长字段 10.4.4 DB2中的自动增长字段 10.5 业务主键与逻辑主键 10.6 NULL的学问 10.6.1 NULL与比较运算符 10.6.2 NULL和计算字段 ...
10.4.2 MS SQL Server中的自动增长字段 10.4.3 Oracle中的自动增长字段 10.4.4 DB2中的自动增长字段 10.5 业务主键与逻辑主键 10.6 NULL的学问 10.6.1 NULL与比较运算符 10.6.2 NULL和计算字段 ...
10.4.2 MS SQL Server中的自动增长字段 10.4.3 Oracle中的自动增长字段 10.4.4 DB2中的自动增长字段 10.5 业务主键与逻辑主键 10.6 NULL的学问 10.6.1 NULL与比较运算符 10.6.2 NULL和计算字段 ...
10.4.2 MS SQL Server中的自动增长字段 10.4.3 Oracle中的自动增长字段 10.4.4 DB2中的自动增长字段 10.5 业务主键与逻辑主键 10.6 NULL的学问 10.6.1 NULL与比较运算符 10.6.2 NULL和计算字段 ...
Oracle一般使用序列(Sequence)来处理主键字段,而MySQL则提供了自增长(increment)来实现类似的目的; 但在实际使用过程中发现,MySQL的自增长有诸多的弊端:不能控制步长、开始索引、是否循环等;若需要迁移数据库,...
Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...
ORACLE的数据字典是数据库的重要组成部分之一,它随着数据库的产生而产生, 随着数据库的变化而变化, 体现为sys用户下的一些表和视图。数据字典名称是大写的英文字符。 数据字典里存有用户信息、用户的权限信息、...
在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据 在selecte统计函数中的字段,不能和普通的字段放在一起; 13、对数据库进行操作: 分离数据库: sp_detach_db; 附加数据库:sp_attach_db 后...
在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据 在selecte统计函数中的字段,不能和普通的字段放在一起; 13、对数据库进行操作: 分离数据库: sp_detach_db; 附加数据库:sp_attach_db ...
第一部分 ORACLE系统优化基本知识 23 第1章 ORACLE结构回顾 23 §1.1 Oracle数据库结构 23 §1.1.1 Oracle数据字典 23 §1.1.2 表空间与数据文件 24 §1.1.3 Oracle实例(Instance) 24 §1.2 Oracle文件 26 §1.2.1...
在设计数据库的表结构时,经常会使用一个自动增长的数字序列作为主键字段(代理主键)。除了作为主键使用之外,自增字段也可以用于记录各个操作发生的先后顺序,因为它具有递增特性。当我们插入一行数据时,数据库会...
Oracle没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。 CREATE SEQUENCE 序列号的名称 (最好是表名 序列号标记) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 ...