`
zhuruxin86
  • 浏览: 105957 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

mysql实现oracle序列(sequence)的解决方案--自定义存储过程

 
阅读更多
转自:http://g.kehou.com/t1018529793.html
MySQL自增长与Oracle序列的区别:
自增长只能用于表中的其中一个字段
自增长只能被分配给固定表的固定的某一字段,不能被多个表共用.
自增长会把一个未指定或NULL值的字段自动填上.

在mysql中添加序列,请看下面的实例:
在MYSQL里有这样一张表:
Java代码 

CREATE TABLE Movie( 
id           INT NOT NULL AUTO_INCREMENT, 
name     VARCHAR(60) NOT NULL, 
released YEAR NOT NULL, 
PRIMARY KEY (id) 
) ENGINE=InnoDB; 

Java代码 

INSERT INTO Movie (name,released) VALUES ('Gladiator',2000); 
INSERT INTO Movie (id,name,released) VALUES (NULL,'The Bourne Identity',1998); 

在ORACLE是这样的:
Java代码 

CREATE TABLE Movie( 
id          INT NOT NULL, 
name     VARCHAR2(60) NOT NULL, 
released INT NOT NULL, 
PRIMARY KEY (id) 
); 
CREATE SEQUENCE MovieSeq; 

Java代码 

INSERT INTO Movie (id,name,released) VALUES (MovieSeq.NEXTVAL,'Gladiator',2000); 


在oracle下为表添加一个触发器,就可以实现mysql自增长功能:
Java代码 

分享到:
评论

相关推荐

    java通过Mysql实现类似oracle序列功能序列.rar

    在Java应用程序中,如果需要在MySQL环境中实现类似Oracle序列的功能,我们需要自己设计解决方案。以下是一些关键知识点的详细说明: 1. **Java连接MySQL**: - 首先,你需要使用JDBC(Java Database Connectivity...

    mysql生成oracle序列

    为了在MySQL中实现类似于Oracle序列的功能,可以通过创建一张特殊的表和几个自定义函数来实现。这种方法可以有效地模拟Oracle序列的行为,并能够根据指定的步长和长度来生成数值。 ##### 2.1 创建模拟序列的表 在...

    MySQL实现类似Oracle序列的方案

    这种方式灵活性较高,可以根据需要定制序列的行为,为迁移数据库或在MySQL中实现Oracle序列特性提供了解决方案。通过这种方式,我们可以确保在MySQL中实现类似于Oracle序列的逻辑,从而更好地适应各种业务场景。

    MySQL生成Oracle序列参考案例

    通过上述方法,即使MySQL原生不支持序列对象,我们也能够通过一些创造性的解决方案来实现类似Oracle的序列功能。这个案例不仅展示了数据库迁移时的技巧,同时也提供了使用MySQL进行高级数据库操作的例证,对于希望在...

    mysql-oracle数据同步

    本文将深入探讨MySQL到Oracle的数据同步过程,以及如何在同步过程中修改MySQL数据表的标识。 首先,我们要理解MySQL和Oracle是两种不同的关系型数据库管理系统(RDBMS)。MySQL以其开源、轻量级、高效的特点被广泛...

    Oracle Sql语句转换成Mysql Sql语句

    6. **序列**:Oracle使用序列(SEQUENCE)来生成唯一ID,MySQL则常使用自增(AUTO_INCREMENT)字段。 7. **视图和存储过程**:Oracle的视图和存储过程可能需要在MySQL中重新编写,因为两者的语法和权限管理不同。 ...

    在MySQL中创建实现自增的序列(Sequence)的教程

    总结来说,虽然MySQL原生不支持Sequence,但我们可以通过创建表和存储过程来模拟Oracle中的序列功能。这种方法允许我们在MySQL中生成全局唯一的序列号,以满足诸如生成流水号或主键等需求。然而,这种方法可能存在...

    mysql转换到oracle数据库

    - **Oracle**:通过序列(sequence)来实现类似功能,但在程序设计时需要特别处理(使用Hibernate等ORM框架时则无需额外处理)。 **2. 分页查询** - **MySQL**:使用`LIMIT`关键字实现分页。 - **Oracle**:利用`...

    oracle迁移mysql自增序列问题

    Oracle数据库中,自增序列通常通过Sequence对象实现,而MySQL则通过在表定义中设置`AUTO_INCREMENT`属性来实现自增主键。 在描述中,我们看到一个具体的例子,首先创建了一个名为`test`的MySQL表,包含两个字段:`...

    mysql数据库转oracle数据库工具

    4. 序列和自增ID处理:MySQL使用AUTO_INCREMENT关键字为表字段生成自增ID,而Oracle则通过序列(SEQUENCE)实现类似功能。转换工具需要处理这些自增ID,确保在Oracle中保持唯一性和连续性。 5. 权限和安全设置:...

    Oracle与MYSQL的几点区别

    ### Oracle与MySQL的区别 在数据库管理系统领域,Oracle与MySQL因其各自独特的优势被广泛应用于不同的业务场景之中。本文将从几个具体的技术角度出发,探讨这两款数据库之间的差异。 #### 1. 分组查询(Group By)...

    MYSQL到ORACLE程序迁移的注意事项

    MySQL到Oracle数据库迁移的过程中,需要注意一系列的差异和调整,以确保迁移后的应用程序能够正常运行。以下是一些关键点的详细说明: 1. **自动增长的数据类型处理**: 在MySQL中,`AUTO_INCREMENT`字段自动分配...

    oracle_mysql系统移植方案[参照].pdf

    - **SEQUENCE**:Oracle中的SEQUENCE在MySQL中没有直接等价物,但可以利用MySQL的AUTO_INCREMENT属性实现类似功能。对于表中的自增字段,直接使用AUTO_INCREMENT即可。对于程序中获取自动编号,可以通过INSERT后...

    MyBatis Oracle 自增序列的实现方法

    在Oracle数据库中,由于没有像MySQL的`auto_increment`或者SQL Server的`IDENTITY`这样的内置机制,所以自增序列的实现通常需要借助于Oracle的`SEQUENCE`对象。MyBatis,作为一个强大的ORM(对象关系映射)框架,...

    Mysql和oracle数据库分析.pdf

    此外,MySQL 有 AUTO_INCREMENT 自动增长数据类型,Oracle 则需要创建序列(SEQUENCE)来实现类似功能。 在选择 MySQL 或 Oracle 时,应考虑项目需求、预算、现有技术栈以及团队的技能。对于小规模、低成本的项目,...

    mysql和Oracle命令的区别

    为了实现类似功能,需要创建一个序列(SEQUENCE)并将其与触发器(TRIGGER)或默认值(DEFAULT)关联,以便在插入新记录时为字段分配序列的下一个值。 2. 单引号的处理: 在 MySQL 中,字符串可以被双引号或单引号...

    mysql中实现sequence.pdf

    在Oracle或PostgreSQL等其他数据库中,我们可以直接创建序列对象,但在MySQL中,我们需要采取一些变通的方法来实现类似的功能。 在MySQL中,`AUTO_INCREMENT`字段是一个常用的机制,用于在插入新记录时自动增加一个...

    oracle_mysql系统移植方案归类.pdf

    在将Oracle数据库系统移植到MySQL的过程中,主要涉及以下几个关键知识点: 1. **数据类型差异**: Oracle和MySQL的数据类型存在显著差异,这直接影响到数据迁移的顺利进行。例如: - 数值类型:Oracle的`NUMBER`...

Global site tag (gtag.js) - Google Analytics