如何在Oracle中设计类似SQLServer中某列按某种方式自增长?
其实很简单,在Oracle中,没有类似Identity(1,1)这样的自增长方式,如果需要设置某列按照某种方式自增长,那么需要“重写”Oracle中sequence,在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方,首先需要明白squence能用到的地方:
-------------------------------------------
可以使用sequence的地方:
- 不包含子查询、snapshot、VIEW的 SELECT 语句
- INSERT语句的子查询中
- NSERT语句的VALUES中
- UPDATE 的 SET中
-------------------------------------------
创建一张表:
<!---->create table test(
id int not null primary key,
name varchar2(20),
sex int)
;
-------------------------------------------
现在“重写”squence
<!---->create sequence t ->创建squence,命名为t
minvalue 1 ->最小值
maxvalue 100000 ->最大值
start with 1 ->从1开始
increment by 1 ->增长比例
nocache ->增长池,为了提高效率,可以设置为 cache 10
;
-------------------------------------------
插入数据:
<!---->insert into test values(t.nextval,'zhangyi'23);
-------------------------------------------
这样就实现了以前在SQLServer中设置Identity(1,1)这样的增长方式了,看上去比较麻烦,实际上做起来还是挺容易的!~
另外,如果想修改squence,直接Alter它就可以了,删除同样是Drop。
--------------------------------------------
另外:搞了几天的Oracle了,唯一的感觉是非常的庞大,今天下的电子书看了一半,感觉还不错,明天继续,看完总算能闻闻Oracle的味道了,呵呵!~下次争取写一个常用Oracle命令,还有这几天在安装Oracle,启动Oracle监听过程中的一些解决办法,与大家一起讨论,晚安!
分享到:
相关推荐
在Oracle中,创建自增序列可以使用`CREATE SEQUENCE`语句,如创建一个名为`class_seq`的序列: ```sql CREATE SEQUENCE class_seq INCREMENT BY 1 START WITH 1 MAXVALUE 999999 NOCYCLE NOCACHE; ``` 然后,在插入...
在移植前,必须对原Oracle系统进行完整备份,并在MySQL环境中设置有效的备份和恢复机制,以防意外情况发生。 9. **安全性与权限管理**: MySQL的安全性和权限管理与Oracle有所不同,需要重新配置用户权限和访问...
### Oracle开发基础知识点详解 #### 一、表空间与用户管理 **1. 创建表空间** - **语法**: `CREATE TABLESPACE 表空间名字 LOGGING DATAFILE '路径及文件名.dbf' SIZE 大小 AUTOEXTEND ON NEXT 大小 MAXSIZE 大小 ...
对于自增字段,Oracle通常通过触发器与SEQUENCE绑定,而在MySQL中,可以直接使用AUTO_INCREMENT属性。对于程序中获取自动编号的需求,Oracle应用会SELECT SEQUENCE,而在MySQL中,可以利用LAST_INSERT_ID()函数,...
目录 1. DB2 1.1. 创建一个返回结果集的存储过程\自定义函数 12 1.2. DB2 高级应用 14 1.3. 删除表数据时候出现日志已满的解决方法 24 ...1.81. 关于标识列(自增列)的对比试验、使用示例 113 示例 121
如果表中包含一个`IDENTITY`类型的自增列,可以利用该特性来实现高效分页。具体操作包括: 1. **创建临时表**:首先,创建一个临时表,将原表中的数据按特定顺序插入。 2. **基于IDENTITY筛选**:然后,根据`...
在**插入操作(Insert)**中,对于具有自增主键的表,通常无需在插入语句中显式包含主键列。但如果没有自增主键,那么主键列是必须的。对于非自增主键,可以通过`<selectKey>`标签获取主键值。对于Oracle和DB2等支持...
在数据库表设计中,了解基本结构至关重要,包括字段(列)、数据类型(如整型、字符型、日期时间型等)、约束(如非空、唯一、主键、外键等)、默认值以及标识列(自增列)。 C#中的`String`类提供了许多处理字符串...
- 在MySQL中,自增主键的ID分配取决于表的存储引擎。对于MyISAM,如果删除了记录,ID不会回收,重启后新插入的记录ID将是原最大ID加一(即18)。而对于InnoDB,如果删除记录并重启数据库,自增ID将重置为最后已知的...
MongoDB使用 update 和 save 方法来更新集合中的文档。** - 正确描述。 **4. HBase开发语言为 JAVA 。** - 正确描述。 **5. MongoDB的聚合操作包含 单一目标聚合 、 聚合管道 、 MAPREDUCE 。** - 正确描述。 ...
id 算法可以是整型自增、sql server 等数据库的 identity、Oracle 的 sequence、hilo(高低位)算法、uuid、guid、程序赋值等。复合主键可以组合多个列来唯一标识一个对象。数据版本并发性控制可以使用版本、时间戳...
SQL(Structured Query Language)是一种用于管理和操作关系数据库的语言,它被广泛应用于各种数据库管理系统(DBMS),如SQL Server、MySQL、Oracle、DB2等。在本文中,我们将深入探讨SQL的基础知识、主要操作以及...
- `IDENTITY`:自增策略,适用于如MySQL等支持自增列的数据库。 - `SEQUENCE`:序列策略,适用于如Oracle等数据库。 - `TABLE`:使用单独的表来保存主键值。 - **联合主键**:当一个实体的主键由多个字段组成时,...
- **列**:对应Java对象中的属性。 #### 四、查询所有数据 Hibernate提供了多种查询方式,包括: - **HQL (Hibernate Query Language)**:一种面向对象的查询语言,类似于SQL但更侧重于面向对象的操作。 - **SQL...
- 自增字段:在字段定义中使用`SERIAL`关键字可以创建一个自动增长的字段,类似于Oracle中的Sequence。 - 约束:约束用于保证数据的完整性和正确性,常见的约束类型包括检查约束(CHECK)等。检查约束可以是匿名的...
- **检查约束 (CHECK)**:在MySQL中不直接支持,但在某些其他数据库系统如Oracle中可用,用于限制字段值的范围。 例如,在创建`orders`表时,我们使用了`NOT NULL`约束确保`orders_title`和`orders_price`字段不能...