当前位置: 首页 > news >正文

Oracle迁移到mysql-表结构的坑

1.mysql中id自增字段必须是整数类型

  id               BIGINT AUTO_INCREMENT not null,
2.VARCHAR2改为VARCHAR

3.NUMBER(16)改为decimal(16,0)

4.date改为datetime

5.mysql范围分区必须int格式,不能list类型

ERROR 1697 (HY000): VALUES value for partition 'P_SHENYANG' must have type INT

6.获取注释信息:参考

迁移oracle表注释列注释到mysql_在navicat中,oracle查询所有表的字段注释,并且将这些字段注释放到mysql库中对应表-CSDN博客 

ALTER TABLE SW_SWITCH COMMENT '交换节点(局向)';ALTER TABLE SW_SWITCH MODIFY COLUMN code VARCHAR(64) COMMENT '交换节点编号';

 

7.auto_increment分区键字段值字段都得为主键

限制条件如下测试:

mysql> create table sw_decimal_res_bas-> (->   id               BIGINT AUTO_INCREMENT not null,->   zone_decimal       decimal(16,0),->   ziguan            VARCHAR(16),->   start_decimal      VARCHAR(16),->   end_decimal        VARCHAR(16),->   type              VARCHAR(16),->   switch_tab        VARCHAR(50),->   switch_id         decimal(16,0),->   ziguan_discrip    VARCHAR(64),->   open_time         VARCHAR(16),->   lose_time         VARCHAR(16),->   opreator          VARCHAR(16),->   build_time        datetime,->   area_id           VARCHAR(16),->   notes             VARCHAR(128),->   blank1            VARCHAR(255),->   blank2            VARCHAR(255),->   ne_id             decimal(16,0),->   jx                VARCHAR(64),->   countrytype       decimal(12,0),->   server_areaid     INT,->   kind              VARCHAR(16),->   occtype           VARCHAR(16),->   locationaddr      VARCHAR(128),->   quality           VARCHAR(16),->   switchcommandflag decimal(6,0) default 1,->   physicalsegmentid decimal(16,0)-> )-> partition by range (SERVER_AREAID)-> (->   partition P_SHENYANG values less than ('2102')-> ,->   partition P_DALIAN values less than ('2103')-> ,->   partition P_ANSHAN values less than ('2104')-> ,->   partition P_FUSHUN values less than ('2105')-> ,->   partition P_BENXI values less than ('2106')-> ,->   partition P_DANDONG values less than ('2107')-> ,->   partition P_JINZHOU values less than ('2108')-> ,->   partition P_YINGKOU values less than ('2109')-> ,->   partition P_FUXIN values less than ('2110')->  ,->   partition P_LIAOYANG values less than ('2111')->  ,->   partition P_PANJIN values less than ('2112')->  ,->   partition P_TIELING values less than ('2113')->  ,->   partition P_CHAOYANG values less than ('2114')->  ,->   partition P_HULUDAO values less than ('2115')->  ,->   partition P_OTHERS values less than (MAXVALUE)-> );
ERROR 1697 (HY000): VALUES value for partition 'P_SHENYANG' must have type INT
mysql> 
mysql> create table sw_decimal_res_bas-> (->   id               BIGINT AUTO_INCREMENT not null,->   zone_decimal       decimal(16,0),->   ziguan            VARCHAR(16),->   start_decimal      VARCHAR(16),->   end_decimal        VARCHAR(16),->   type              VARCHAR(16),->   switch_tab        VARCHAR(50),->   switch_id         decimal(16,0),->   ziguan_discrip    VARCHAR(64),->   open_time         VARCHAR(16),->   lose_time         VARCHAR(16),->   opreator          VARCHAR(16),->   build_time        datetime,->   area_id           VARCHAR(16),->   notes             VARCHAR(128),->   blank1            VARCHAR(255),->   blank2            VARCHAR(255),->   ne_id             decimal(16,0),->   jx                VARCHAR(64),->   countrytype       decimal(12,0),->   server_areaid     INT,->   kind              VARCHAR(16),->   occtype           VARCHAR(16),->   locationaddr      VARCHAR(128),->   quality           VARCHAR(16),->   switchcommandflag decimal(6,0) default 1,->   physicalsegmentid decimal(16,0)-> )-> partition by range (SERVER_AREAID)-> (->   partition P_SHENYANG values less than (2102)-> ,->   partition P_DALIAN values less than (2103)-> ,->   partition P_ANSHAN values less than (2104)-> ,->   partition P_FUSHUN values less than (2105)-> ,->   partition P_BENXI values less than (2106)-> ,->   partition P_DANDONG values less than (2107)-> ,->   partition P_JINZHOU values less than (2108)-> ,->   partition P_YINGKOU values less than (2109)-> ,->   partition P_FUXIN values less than (2110)->  ,->   partition P_LIAOYANG values less than (2111)->  ,->   partition P_PANJIN values less than (2112)->  ,->   partition P_TIELING values less than (2113)->  ,->   partition P_CHAOYANG values less than (2114)->  ,->   partition P_HULUDAO values less than (2115)->  ,->   partition P_OTHERS values less than (MAXVALUE)-> );
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
mysql> 
mysql> 
mysql> create table sw_decimal_res_bas-> (->   id               BIGINT AUTO_INCREMENT not null,->   zone_decimal       decimal(16,0),->   ziguan            VARCHAR(16),->   start_decimal      VARCHAR(16),->   end_decimal        VARCHAR(16),->   type              VARCHAR(16),->   switch_tab        VARCHAR(50),->   switch_id         decimal(16,0),->   ziguan_discrip    VARCHAR(64),->   open_time         VARCHAR(16),->   lose_time         VARCHAR(16),->   opreator          VARCHAR(16),->   build_time        datetime,->   area_id           VARCHAR(16),->   notes             VARCHAR(128),->   blank1            VARCHAR(255),->   blank2            VARCHAR(255),->   ne_id             decimal(16,0),->   jx                VARCHAR(64),->   countrytype       decimal(12,0),->   server_areaid     INT,->   kind              VARCHAR(16),->   occtype           VARCHAR(16),->   locationaddr      VARCHAR(128),->   quality           VARCHAR(16),->   switchcommandflag decimal(6,0) default 1,->   physicalsegmentid decimal(16,0)-> )-> partition by range (id,SERVER_AREAID)-> (->   partition P_SHENYANG values less than (2102)-> ,->   partition P_DALIAN values less than (2103)-> ,->   partition P_ANSHAN values less than (2104)-> ,->   partition P_FUSHUN values less than (2105)-> ,->   partition P_BENXI values less than (2106)-> ,->   partition P_DANDONG values less than (2107)-> ,->   partition P_JINZHOU values less than (2108)-> ,->   partition P_YINGKOU values less than (2109)-> ,->   partition P_FUXIN values less than (2110)->  ,->   partition P_LIAOYANG values less than (2111)->  ,->   partition P_PANJIN values less than (2112)->  ,->   partition P_TIELING values less than (2113)->  ,->   partition P_CHAOYANG values less than (2114)->  ,->   partition P_HULUDAO values less than (2115)->  ,->   partition P_OTHERS values less than (MAXVALUE)-> );
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ',SERVER_AREAID)
(partition P_SHENYANG values less than (2102)
,partition P' at line 31
mysql> create table sw_decimal_res_bas-> (->   id               BIGINT AUTO_INCREMENT not null,->   zone_decimal       decimal(16,0),->   ziguan            VARCHAR(16),->   start_decimal      VARCHAR(16),->   end_decimal        VARCHAR(16),->   type              VARCHAR(16),->   switch_tab        VARCHAR(50),->   switch_id         decimal(16,0),->   ziguan_discrip    VARCHAR(64),->   open_time         VARCHAR(16),->   lose_time         VARCHAR(16),->   opreator          VARCHAR(16),->   build_time        datetime,->   area_id           VARCHAR(16),->   notes             VARCHAR(128),->   blank1            VARCHAR(255),->   blank2            VARCHAR(255),->   ne_id             decimal(16,0),->   jx                VARCHAR(64),->   countrytype       decimal(12,0),->   server_areaid     INT,->   kind              VARCHAR(16),->   occtype           VARCHAR(16),->   locationaddr      VARCHAR(128),->   quality           VARCHAR(16),->   switchcommandflag decimal(6,0) default 1,->   physicalsegmentid decimal(16,0),PRIMARY KEY (id)-> )-> partition by range (SERVER_AREAID)-> (->   partition P_SHENYANG values less than (2102)-> ,->   partition P_DALIAN values less than (2103)-> ,->   partition P_ANSHAN values less than (2104)-> ,->   partition P_FUSHUN values less than (2105)-> ,->   partition P_BENXI values less than (2106)-> ,->   partition P_DANDONG values less than (2107)-> ,->   partition P_JINZHOU values less than (2108)-> ,->   partition P_YINGKOU values less than (2109)-> ,->   partition P_FUXIN values less than (2110)->  ,->   partition P_LIAOYANG values less than (2111)->  ,->   partition P_PANJIN values less than (2112)->  ,->   partition P_TIELING values less than (2113)->  ,->   partition P_CHAOYANG values less than (2114)->  ,->   partition P_HULUDAO values less than (2115)->  ,->   partition P_OTHERS values less than (MAXVALUE)-> );
ERROR 1503 (HY000): A PRIMARY KEY must include all columns in the table's partitioning function (prefixed columns are not considered).
mysql> create table sw_decimal_res_bas-> (->   id               BIGINT AUTO_INCREMENT not null,->   zone_decimal       decimal(16,0),->   ziguan            VARCHAR(16),->   start_decimal      VARCHAR(16),->   end_decimal        VARCHAR(16),->   type              VARCHAR(16),->   switch_tab        VARCHAR(50),->   switch_id         decimal(16,0),->   ziguan_discrip    VARCHAR(64),->   open_time         VARCHAR(16),->   lose_time         VARCHAR(16),->   opreator          VARCHAR(16),->   build_time        datetime,->   area_id           VARCHAR(16),->   notes             VARCHAR(128),->   blank1            VARCHAR(255),->   blank2            VARCHAR(255),->   ne_id             decimal(16,0),->   jx                VARCHAR(64),->   countrytype       decimal(12,0),->   server_areaid     INT,->   kind              VARCHAR(16),->   occtype           VARCHAR(16),->   locationaddr      VARCHAR(128),->   quality           VARCHAR(16),->   switchcommandflag decimal(6,0) default 1,->   physicalsegmentid decimal(16,0),PRIMARY KEY (id,SERVER_AREAID)-> )-> partition by range (SERVER_AREAID)-> (->   partition P_SHENYANG values less than (2102)-> ,->   partition P_DALIAN values less than (2103)-> ,->   partition P_ANSHAN values less than (2104)-> ,->   partition P_FUSHUN values less than (2105)-> ,->   partition P_BENXI values less than (2106)-> ,->   partition P_DANDONG values less than (2107)-> ,->   partition P_JINZHOU values less than (2108)-> ,->   partition P_YINGKOU values less than (2109)-> ,->   partition P_FUXIN values less than (2110)->  ,->   partition P_LIAOYANG values less than (2111)->  ,->   partition P_PANJIN values less than (2112)->  ,->   partition P_TIELING values less than (2113)->  ,->   partition P_CHAOYANG values less than (2114)->  ,->   partition P_HULUDAO values less than (2115)->  ,->   partition P_OTHERS values less than (MAXVALUE)-> );
Query OK, 0 rows affected (0.03 sec)mysql> 

http://www.lryc.cn/news/304894.html

相关文章:

  • 【SpringCloudAlibaba系列--nacos配置中心】
  • 使用LinkedList实现堆栈及Set集合特点、遍历方式、常见实现类
  • springboot-cache+redis 为指定名称缓存设置独立超时时间
  • Flutter 数据持久化存储之Hive
  • Java中继承静态属性,方法,和非静态属性和方法的继承区别
  • C# If与Switch的区别
  • 实验室预约|实验室预约小程序|基于微信小程序的实验室预约管理系统设计与实现(源码+数据库+文档)
  • 蓝桥杯DP算法——区间DP(C++)
  • pytest结合Allure生成测试报告
  • Linux--ACL权限管理
  • Xcode中App图标和APP名称的修改
  • Spring 手动实现Spring底层机制
  • CSV数据导入到ClickHouse数据库
  • 第十二天-ppt的操作
  • 计算机网络-网络层,运输层,应用层
  • Python爬虫学习
  • 台式电脑黑屏无法开机怎么办 电脑开机黑屏的解决方法
  • 【Docker】初学者 Docker 基础操作指南:从拉取镜像到运行、停止、删除容器
  • 突破编程_C++_面试(数组(1))
  • 基于springboot+vue的靓车汽车销售网站(前后端分离)
  • 【知识整理】Git Commit Message 规范
  • HarmonyOS学习--三方库
  • 【服务器数据恢复】FreeNAS+ESXi虚拟机数据恢复案例
  • 【GPT-2】论文解读:Language Models are Unsupervised Multitask Learners
  • 基于机器学习、遥感和Penman-Monteith方程的农田蒸散发混合模型研究_刘燕_2022
  • 博客 cn 站搭建 v3 v3.1
  • 2024全国水科技大会暨流域水环境治理与水生态修复论坛(六)
  • Python实战:读取MATLAB文件数据(.mat文件)
  • spring boot3登录开发-3(账密登录逻辑实现)
  • Django后端开发——ORM