【问题标题】:Is .sql file different for MySQL and SQL?MySQL 和 SQL 的 .sql 文件是否不同?
【发布时间】:2011-01-15 03:24:38
【问题描述】:

我有一个 .sql 文件,我想将它加载到 MySQL 数据库中。我不知道它是从哪个数据库(MySQL 或 MS-SQL)创建的。

现在,我正在尝试将该文件导入 MySQL 数据库。导入和执行该文件时显示错误。

第一季度。那么,我的问题是,从 MySQL 和 MS-SQL 生成的 .sql 文件是否不同?

注意:我正在使用 SQLYog 软件(MySQL 的图形界面)来导入文件。

这是错误:

查询: 创建表ads ( id bigint(20) NOT NULL auto_increment, city_id int(11) 非空, type 文本整理 utf8_bin 非空, town 文本整理 utf8_bin 非空, address 文本整理 utf8_bin 非空, price 文本整理 utf8_bin 非空, info 文本整理 utf8_bin 非空, link 文本整理 utf8_bin 非空, hasImage int(11) 非空, language varchar(2) 整理 utf8_bin NOT NULL, time_added varchar(255) 整理 utf8_bin NOT NULL, 主键 (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1

错误发生在:2009-09-08 17:41:01 行号:35 错误代码:1050 - 表“广告”已存在

查询: 创建表ads ( id bigint(20) NOT NULL auto_increment, city_id int(11) 非空, type 文本整理 utf8_bin 非空, town 文本整理 utf8_bin 非空, address 文本整理 utf8_bin 非空, price 文本整理 utf8_bin 非空, info 文本整理 utf8_bin 非空, link 文本整理 utf8_bin 非空, hasImage int(11) 非空, language varchar(2) 整理 utf8_bin NOT NULL, time_added varchar(255) 整理 utf8_bin NOT NULL, 主键 (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1

错误发生在:2009-09-08 17:41:21 行号:35 错误代码:1050 - 表“广告”已存在

查询: 创建表ads ( id bigint(20) NOT NULL auto_increment, city_id int(11) 非空, type 文本整理 utf8_bin 非空, town 文本整理 utf8_bin 非空, address 文本整理 utf8_bin 非空, price 文本整理 utf8_bin 非空, info 文本整理 utf8_bin 非空, link 文本整理 utf8_bin 非空, hasImage int(11) 非空, language varchar(2) 整理 utf8_bin NOT NULL, time_added varchar(255) 整理 utf8_bin NOT NULL, 主键 (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1

错误发生在:2009-09-08 17:41:35 行号:35 错误代码:1050 - 表“广告”已存在

查询: 创建表ads ( id bigint(20) NOT NULL auto_increment, city_id int(11) 非空, type 文本整理 utf8_bin 非空, town 文本整理 utf8_bin 非空, address 文本整理 utf8_bin 非空, price 文本整理 utf8_bin 非空, info 文本整理 utf8_bin 非空, link 文本整理 utf8_bin 非空, hasImage int(11) 非空, language varchar(2) 整理 utf8_bin NOT NULL, time_added varchar(255) 整理 utf8_bin NOT NULL, 主键 (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1

错误发生在:2009-09-08 17:42:07 行号:35 错误代码:1050 - 表“广告”已存在

查询: 1 斯坦福大学 6700 http://www.orkut.co.in . . .

【问题讨论】:

  • 为什么不在您的问题中包含错误消息?
  • “MySQL 和 SQL”:“SQL”与“Microsoft SQL Server”一样吗?
  • @Thilo @Adam 我已经编辑了这个问题。

标签: mysql sql-server sqlyog mysql-error-1050


【解决方案1】:

文件扩展名“.sql”本质上是没有意义的:它只是为了让知道文件是什么。它只是一个包含 SQL 的纯文本文件,您可以在记事本中打开它。因此,没有特殊的“mysql”或“sql server”扩展。

您遇到的错误"Table 'ads' already exists" 是因为您正在尝试创建一个已经存在于数据库中的表。 (你读过错误吗?)你有几个选择:

  1. 将 SQL 更改为:

    CREATE TABLE IF NOT EXISTS ads ( id bigint(20) ...
    
  2. 将 SQL 更改为:

    DROP TABLE IF EXISTS ads;
    CREATE TABLE ads (id bigint(20) ...
    
  3. 先清空数据库中的所有表。

【讨论】:

  • 我仍然删除了整个数据库并尝试重新加载它......但发生了同样的错误
  • @Yatendra - 再看看。确保选择了正确的数据库。还要检查您的 SQL 脚本中没有多次创建该表。
  • 该脚本引用了 InnoDB 存储,这意味着它是为 MySQL 编写的。但是,错误清楚地表明 ads 表已经存在。可能查看整个脚本可能会发现问题。
【解决方案2】:

不幸的是,MySQL 和 Microsoft SQL Server 实现了不同的 SQL 方言。所以,你的问题的答案:

第一季度。所以,我的问题是 从 MySQL 生成的 .sql 文件和 MS-SQL 不一样?

是“是的,很可能”。但是,您显示的具体错误似乎完全是由于第 35 行的“创建表”语句一遍又一遍地执行,并且不能取决于这种方言差异,所以原因必须是其他的(例如我不熟悉的“SQLYog”程序期望作为其输入的错误或细微的格式差异)。

【讨论】:

    【解决方案3】:

    这取决于导出此文件的软件。还要检查文件的标题是哪个软件做的,并分析语法以确定该文件所属的位置。另请注意,SQL 是 microsoft sql server。

    【讨论】:

    • @Sarfraz 我检查了标题。头部如下:......-- phpMyAdmin SQL Dump -- 版本 3.2.4 -- phpmyadmin.net -- -- Host: loc
    • @Goel:那你最好使用phpmyadmin来导入这个文件,它肯定可以正常工作。谢谢
    【解决方案4】:

    是的。 SQL 因数据库而异。虽然大多数数据库都支持SQL standard,但每个数据库都有许多不兼容的非标准特性和功能,超出标准规定的范围。

    还有许多可用的迁移文档:

    MSSQL => MySQL: http://dev.mysql.com/tech-resources/articles/migrating-from-microsoft.html

    MySQL => MSSQL: http://technet.microsoft.com/en-us/library/cc966396.aspx

    在您的 CREATE TABLE 语句中有两个明显的东西是 MSSQL 不支持的,它们会立即跳出:

    ENGINE=InnoDB
    AUTO_INCREMENT=1
    

    这些都是 MySQL 特定的语句。

    【讨论】:

      【解决方案5】:

      您的脚本似乎被执行了多次(因为每次发生错误的行号都是相同的)。该错误还表明您正在尝试定义一个已经存在的表,这可能是从该脚本第一次运行开始的。您可能想查看脚本是如何运行的,以了解为什么它可能会执行多次。

      SQL 本身对于 MySQL 来说看起来不错。它不能与 SQL Server 一起运行。

      【讨论】:

        猜你喜欢
        • 2012-02-03
        • 1970-01-01
        • 2014-11-26
        • 1970-01-01
        • 1970-01-01
        • 2018-05-24
        • 2018-11-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多