【问题标题】:How to convert MS SQL queries to MySQL queries如何将 MS SQL 查询转换为 MySQL 查询
【发布时间】: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,而不是查询?

标签: mysql sql-server converter


【解决方案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 的部分

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-17
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多