mybatis 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)

你可能感兴趣的:(mybatis Oracle到Mysql迁移 记录)