洛阳青峰网络做网站seo推广优化找stso88效果好
目录
- 一、场景
 - 二、语法差异
 
一、场景
1、使用CAEMigrator-1.0.exe将mysql数据库迁移至cae数据库时,迁移速度非常慢,而且容易卡死(可能是部署cae数据库的服务器资源不足导致)
2、所以将mysql数据库导出为sql脚本,通过CAEManager-V1.0.exe工具进行sql脚本导入
3、但mysql的语法与cae的语法是有差异的,需要调整sql脚本语法
二、语法差异
使用SQL脚本导入数据时,SQL脚本不能有注释,否则导入会失败,可以在notepad++使用^.*-- .*\r?\n来去除注释行无法在创建表的时候添加普通约束
KEY `ACT_FK_BYTEARR_DEPL` (`DEPLOYMENT_ID_`)	==》	删除这一行
CONSTRAINT `ACT_FK_BYTEARR_DEPL` CHECK(`DEPLOYMENT_ID_`)	==》	删除这一行
INDEX `FK_Reference_2`(`BusiFirCode`) USING BTREE	==》	删除这一行
UNIQUE INDEX `IX_T_3RDAUTH_AuthToken`(`AuthorizerAppid`)	==》	删除这一行
FULLTEXT INDEX `idx_Address`(`Cus_Address`)	==》	删除这一行只能在表创建成功之后添加
-- Alter Table Add ForeignKey Constraint --
alter table ICIP6_BAK.ACT_GE_BYTEARRAY add constraint ACT_FK_BYTEARR_DEPL foreign key(DEPLOYMENT_ID_) references ICIP6_BAK.ACT_RE_DEPLOYMENT(ID_) on update restrict on delete restrict;
-- Create Table Index --
create index "ACT_FK_BYTEARR_DEPL" on ICIP6_BAK.ACT_GE_BYTEARRAY("DEPLOYMENT_ID_") indextype is btree global ;创建表时指定自增主键值
AUTO_INCREMENT = 54		==》		删掉
`id` Integer NOT NULL AUTO_INCREMENT,		==》		`id` Integer IDENTITY(54,1) NOT NULL,
注意:identity(1,1)要紧跟在Int或integer后自动更新日期
`DEPLOY_TIME_` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP		==》		`DEPLOY_TIME_` timestamp AUTO UPDATE日期不支持'0000-00-00 00:00:00'设置默认值
1、删掉默认值:`InitializeTime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '初始化时间'		==》		`InitializeTime` datetime NOT NULL COMMENT '初始化时间'
2、替换默认值:`InitializeTime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '初始化时间'		==》		`InitializeTime` datetime NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT '初始化时间'按范围分区
PARTITION BY RANGE COLUMNS (`InitializeTime`)
PARTITIONS 240
(PARTITION `p201101` MAX_ROWS = 0 MIN_ROWS = 0,
(PARTITION `p201102` MAX_ROWS = 0 MIN_ROWS = 0)替换成以下写法PARTITION BY RANGE (`InitializeTime`) INTERVAL 1 MONTH			-- INTERVAL 1 MONTH是按月进行分区
PARTITIONS(part1 VALUES LESS THAN('2011-01'),part2 VALUES LESS THAN('2011-02'))创建表时不能指定数据库引擎及字符编码
ENGINE = InnoDB、DEFAULT CHARSET=utf8、COLLATE=utf8_bin、CHARSET utf8、COLLATE utf8_bin		==》	删除这些声明不支持ROW_FORMAT
ROW_FORMAT = COMPACT		==》		删掉不支持UNSIGNED
UNSIGNED		==》		删掉不支持USING BTREE
USING BTREE		==》		删掉不支持zerofill
zerofill		==》		删掉不支持CHARACTER
varchar(50) CHARACTER		==>		varchar(50)不支持“SET utf8”
SET utf8		==》		删掉创建表如果进行分区,不能使用sql脚本导入功能,但可以放到工具CAEManage里边执行不支持MEDIUMTEXT、longtext,使用clob代替
MEDIUMTEXT		==》		clob
longtext		==》		clob不支持longblob、mediumblob,使用blob代替
longblob		==》		blob表描述格式调整,去掉=号,如:
comment='按下VDN设置的取消ACD排队的DTMF键后,需进行'  ==> comment '按下VDN设置的取消ACD排队的DTMF键后,需进行'插入blob、clob数据
1、manager只支持手动插入blob
2、在console用下面的语法
create table test(a blob);
insert into test values(?); <# C:\t1.png;二进制数据不能直接insert,得使用上面那种语法插入
0x00000000000000000000000000000000000000000000000000000000		==》		删掉
数据流不能直接insert,得使用上面那种语法插入
0x63657368695F3120E5A484E79086E5AE8CE68890EFBC8CE8AFB7E5AEA1E689B9E38082		==》		删掉不支持double(10, 2)
double(10, 2)		==》		double不支持tinyint(4)
tinyint(4)		==》		tinyint不支持bigint(4)
bigint(4)		==》		bigint不支持smallint(4)
smallint(4)		==》		smallint不支持int(4)
int(4)		==》		int不支持bit(1)
bit(1)		==》		boolean不支持bit(m),m > 1
bit(m)		==》		BINARY插入bit类型时,需要把字符b去掉
INSERT INTO `xxx` VALUES (b'0');		==》		INSERT INTO `xxx` VALUES ('0');
