如何将 MS SQL 查询转换为 MySQL 查询
Posted
技术标签:
【中文标题】如何将 MS SQL 查询转换为 MySQL 查询【英文标题】:How to convert MS SQL queries to MySQL queries 【发布时间】:2012-11-15 01:17:37 【问题描述】:我有一个 MSSQL 查询文件 (.sql),现在我需要将其转换为 mysql 查询。 请帮我。脚本如下:
CREATE TABLE [dbo].[Artist](
[ArtistId] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](120) NULL,
PRIMARY KEY CLUSTERED
(
[ArtistId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
【问题讨论】:
这看起来像 DDL,而不是查询? 【参考方案1】:如果您想手动转换 DDL,那么您可以根据具体情况建立规则,例如如下:
[]
需要换成反引号
IDENTITY(1,1) 可以替换为AUTO_INCREMENT
大多数 ANSI 选项和设备设置
可以忽略(这些似乎只是因为表有
已改写)
w.r.t. dbo
,MySQL 实现模式的方式与 SQL Server 不同 - 您要么需要将模式分离到数据库中,要么删除模式,或者将模式名称混入表名(例如作为前缀)
这将为您留下如下内容:
CREATE TABLE `Artist`(
`ArtistId` int NOT NULL AUTO_INCREMENT,
`Name` nvarchar(120) NULL,
PRIMARY KEY CLUSTERED
(
`ArtistId` ASC
)
);
Fiddle here
但是,使用 migration tool 进行此迁移通常要容易得多 - 搜索有关如何使用 Transition from SQL Server to MySQL
的部分
【讨论】:
以上是关于如何将 MS SQL 查询转换为 MySQL 查询的主要内容,如果未能解决你的问题,请参考以下文章
如何将 MS-SQL Server SELECT 查询转换/迁移到 Oracle 和 MySQL?
如何将 MS Access“IIF”查询转换为 Sql Server 查询?