logo网站设计素材,微妙音门户网站建设,自动点击关键词软件,镜像网站如何做排名升级前准备
jdbc:dm://10.252.10.15:5237 username: datashare password: datashare123
把当前MySQL数据库下的数据库表以及数据迁移到DM8。通过达梦8自带的工具可以实现迁移#xff08;仅支持Win#xff09;
DM8管理工具下载#xff1a;https://www.dameng.com/DM8.html…升级前准备
jdbc:dm://10.252.10.15:5237 username: datashare password: datashare123
把当前MySQL数据库下的数据库表以及数据迁移到DM8。通过达梦8自带的工具可以实现迁移仅支持Win
DM8管理工具下载https://www.dameng.com/DM8.html
迁移数据参考博客https://portal.shadowsocks.au/clientarea.php?actionproductdetailsid1473863
注意MySQL的DateTime类型到了DM8会自动转为Timestamp要注意在同步的时候配置表手动修改为DateTime
项目修改
新增Maven依赖
!-- dm8驱动--
dependencygroupIdcom.dameng/groupIdartifactIdDmJdbcDriver18/artifactIdversion8.1.2.192/version
/dependency!-- dm8方言包和驱动一个版本 --
dependencygroupIdcom.dameng/groupIdartifactIdDmDialect-for-hibernate5.3/artifactIdversion8.1.2.192/version
/dependencyNacos配置改成DM8数据源
primary: slaveslave:driver-class-name: dm.jdbc.driver.DmDriverurl: jdbc:dm://10.252.10.15:5237?schemads_exchangeusername: datasharepassword: datashare123在MybatisConfig类下新增Bean
Bean
ConditionalOnMissingBean
public DatabaseIdProvider getDatabaseIdProvider() {DatabaseIdProvider databaseIdProvider new VendorDatabaseIdProvider();Properties p new Properties();p.setProperty(DM DBMS, dm);p.setProperty(MySQL, mysql);databaseIdProvider.setProperties(p);return databaseIdProvider;
}Mapper.xml文件的SQL冗余两份用databaseId隔离后面上线如果遇到语法不兼容可以直接修改在databaseIddm的SQL 例如 原来的: select idgetDetailById resultMapsyncJobWithFlowInfoMapselect j.id, j.owner_ids, j.owner_names, j.source_id, j.target_id, j.project_id, j.properties, j.xxl_job_info_id, j.remark, j.name, j.status, j.parent_id, j.ancestors, j.job_catalog_id, j.CREATE_TIME, j.MODIFY_TIME, j.CREATOR_ID, j.UPDATER_ID, f.name catalog_namefrom sync_job_info j left join sync_job_catalog f on f.id j.job_catalog_id where j.delete_status0 and j.id #{id}/select 修改后
select idgetDetailById resultMapsyncJobWithFlowInfoMap databaseIdmysqlselect j.id, j.owner_ids, j.owner_names, j.source_id, j.target_id, j.project_id, j.properties, j.xxl_job_info_id, j.remark, j.name, j.status, j.parent_id, j.ancestors, j.job_catalog_id, j.CREATE_TIME, j.MODIFY_TIME, j.CREATOR_ID, j.UPDATER_ID, f.name catalog_namefrom sync_job_info j left join sync_job_catalog f on f.id j.job_catalog_id where j.delete_status0 and j.id #{id}
/selectselect idgetDetailById resultMapsyncJobWithFlowInfoMap databaseIddmselect j.id, j.owner_ids, j.owner_names, j.source_id, j.target_id, j.project_id, j.properties, j.xxl_job_info_id, j.remark, j.name, j.status, j.parent_id, j.ancestors, j.job_catalog_id, j.CREATE_TIME, j.MODIFY_TIME, j.CREATOR_ID, j.UPDATER_ID, f.name catalog_namefrom sync_job_info j left join sync_job_catalog f on f.id j.job_catalog_id where j.delete_status0 and j.id #{id}
/select问题总结
序号问题原因解决方案备注1生成id问题dm不支持UUID可使用sys_guid代替例如sys_guid AS bill_Id2求两个时间相差天数dm不支持DATEDIFF可使用BIGDATEDIFF代替例如BIGDATEDIFF(DAY,admission_time,discharge_time)3group by 关键字后面不能使用字段的别名直接使用字段本身4group by 时 select 除了聚合字段和聚合参数其他字段不允许查询默认标准select限制修改标准语法例如select type,count(id) from t_1 group by type5mysql中DATEDIFF和 dm中BIGDATEDIFF 参数位置位置相反示例mysql select DATEDIFF(discharge_time,admission_time) from drg_idl_performance_basicdmselect BIGDATEDIFF(DAY,admission_time,discharge_time) from drg_idl_performance_basic6表备份时若表的主键是自增会报错自增字段不能插入自己值在复制表的创建sql语句中去掉“IDENTITY(1, 1)”,备份成功后再修改表主键为自增列7STR_TO_DATE()不支持使用TO_DATE()代替实例TO_DATE( rysj,‘YYYYMMDD’) 不支持%Y%m%d 写法8列长度超出定义达梦数据库一个汉字占2个长度mysql为1个对于存储汉字的列长度比mysql多定义一倍9DATE_SUB( now( ), INTERVAL 1 DAY )dm中INTERVAL 1 DAY 需要给1加上‘1’才可以使用DATE_SUB( now( ), INTERVAL ‘1’ DAY )10replace into 不支持使用 merge into 代替