IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySql建表语句迁移DB2方法总结(踩坑记录) -> 正文阅读

[大数据]MySql建表语句迁移DB2方法总结(踩坑记录)

一、前言

最近需要把mysql数据库中的表迁移到DB2数据库,表内的数据用kettle可以实现迁移,但是建表语句却怎么也搞不好。
百度半天,发现并没有什么好的方法或工具能把mysql建表语句转成DB2。

Mysql建表语句想转成DB2,似乎只能自己手写。

然后就踩了一堆坑,用时2天,总算搞定了。

记录如下。

二、重点部分

1.DB2中,varchar必须写明长度限制,bigint与integer必须不写长度限制。(一个小坑)

2.mysql中,varchar(30)可以保存30个汉字;DB2中,varchar(90)才可以保存30个汉字。因此mysql迁移DB2时,对于有汉字的列,长度限制一定要记得*3。(一个大坑,本人亲测)

3.mysql与DB2字段对应关系样例(迁移时遇到的)

Mysql字段DB2字段
varchar(15)varchar(45)
longtextCLOB(2G)
bigint(20)bigint
int(11)integer
datetimetimestamp
bit(1)character(1)

4.mysql建表语句改DB2时,bit(1)改为varchar(1) for bit data,当insert数据时就会报错,所以bit(1)改为character(1)。

5.DB2不能修改已有的列类型,只能新增或删除列;而mysql是可以的。

6.DB2建表语句与mysql的区别是,mysql对于列的注释、索引,都是写在create()语句的括号里面的;但是DB2中列的注释、索引,是要单独写到外面的。(下方有样例)

7.因此DB2中,增加列的注释、索引的语句,参考下方的样例即可,可以单独执行。

三、sql样例

  • mysql建表语句样例
create table `course_info` (
`id` bigint(20) not null auto increment,
`course_id` varchar(15) character set utf8 collate utf8_general_ci NULL DEFAULT NULL,
`course_details` longtext character set utf8 collate utf8_general_ci NULL,
`course_duration` bigint(20) NULL DEFAULT NULL,
`play_times` int(11) NULL DEFAULT NULL comment '播放量',
`can_slide` bit(1) NULL DEFAULT NULL,
`up_date` datetime NULL DEFAULT NULL,
`can_share` varchar(2) character set utf8 collate utf8_general_ci NULL DEFAULT '0',

PRIMARY KEY (`id`),

INDEX `idx_id` (`course_code`) using btree,
INDEX `idx_slide_share` (`can_slide`,`can_share`) using btree
)

ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=754
ROW_FORMAT=DYNAMIC
;
  • DB2建表语句样例
create table course_info (
 ID BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY,
 COURSE_CODE VARCHAR(45),
 COURSE_DETAILS CLOB(2G),
 COURSE_DURATION BIGINT,
 PLAY_TIMES INTEGER,
 CAN_SLIDE CHARACTER(3),
 UP_DATE TIMESTAMP,
 CAN_SHARE VARCHAR(6),

 PRIMARY KEY(ID)
);

COMMENT ON TABLE COURSE_INFO IS '课程视频表';
COMMENT ON COLUMN COURSE_INFO.play_times IS '播放次数';

create index idx_id on course_info(course_code);
create index idx_slide_share on course_info(can_slide, can_share);

●建表最重要的三点:

1.列
需要注意列类型、长度、初始值、是否允许为空、是否自增等。

2.注释
分为表注释和列注释。

3.索引。
mysql中可以选索引类型(Normal,Unique,Full Text)、索引方法(BTREE,HASH);DB2部分相似。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-13 11:30:47  更:2021-10-13 11:32:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:01:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码