您的位置:首页 > 数据库 > Oracle

mybatis Oracle到Mysql迁移 记录

2016-01-05 00:00 387 查看
摘要: 数据库需要从oracle迁到mysql,记录目前迁移过程中涉及的要点

>数据类型;number(20)-->bigint, date-->datetime, varchar2-->varchar, clob-->longtext, blob-->longblob

>大小写:全部大写

>mysql驱动:

>执行多条sql语句:mysql需要在数据库连接字符串加allowMultiQueries=true

>切换:使用spring profile 或者mybatis的VendorDatabaseIdProvider

>翻页:limit

>主键:
增长AUTO_INCREMENT useGeneratedKeys="true" keyProperty="groupId" ,
或建表和函数|存储过程 模拟oracle的sequence,成功后赋值

>函数:sysdate-->now()
mysql : DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s')
oracle: TO_CHAR(SYSDATE,'YYYY-MM-DD hh24:mi:ss')

>转义字符:mysql的转义字符是“\”,oracle转义字符用escape声明。mysql执行sql insert语句时,字符串里的“\”会转义丢失,需要再加“\”

>语法:连接字符串:在Oracle中用|| ,SqlServer中用+,MySQL中用concat('a','b','c')

>语法:insert delete 操作是不允许使用表别名的。oracle可以delete xxx, mysql必须是delete from xxx

>语法:在MySQL中from 后的表如果是(select.......)这种,那么后面必须有别名

>语法:mysql不支持匿名块begin;end;只能写在存储过程中

>保留字:``

>空字符:?

>事务问题:mysql的表的Engine要设置成InnoDB,MyISAM不支持事务。(未解问题:原本oracle版本应用是可以事务回滚的,改成mysql就不行。Engine是InnoDB,spring的事务拦截跟踪也是有走到rollback)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: