我已经使用MySQL工作台迁移向导将现有的SQL server数据库迁移到MySQL server数据库。因为这是两个不同的数据库服务器,所以我希望确保stored procedures
、triggers
和views
没有数据丢失,我的意思是一切都完好无损。我尝试使用MySQL工作台Compare Schema
向导,但它只适用于两个MySQL数据库。请提出实现它的方法。
首先,您应该比较SQL Server和MySQL之间的数据库模式,看看是否存在差异。
我不认为该字段丢失,但可能需要数据类型调整、索引调整等。
其次,一旦修复了数据库模式,就应该验证导入的数据,包括:
- 每个表的总行数
- 行内容
对于两者,最好是编写一个验证脚本(PHP、node.js、python等(,列出SQL Server的所有表,并为每个表检查行号、标识计数器,然后检查数据本身。
-
要将MS SQL数据库表的模式移动或复制到MySQL中,必须映射数据类型,查找NULL约束,并确定设置为PRIMARY KEY的字段。
-
此过程不支持索引、外键、标识列、唯一或其他表约束以及字符集的转换。
-
MySQL支持所有重要的MS SQL数据类型。但是,有些SQL server数据类型与MySQL数据类型不匹配。您需要映射MySQL的一些主要数据类型如下:
SQL Server | MySQL |
---|---|
VARCHAR(最大( | 长文本 |
SQL_VARIANT | BLOB |
标识 | AUTO_INCREMENT |
AUTO_INCREMENT | 文本字符集UTF8 |
SMALLDATETIME | 日期时间 |
货币 | DECIMAL(19.4( |
UNIQUEIDENTIFIER | 二进制(16( |
系统名称 | CHAR(256( |