【问题标题】:How to make SQL script file compatible with both MYSQL and MSSQL?如何使 SQL 脚本文件同时兼容 MYSQL 和 MSSQL?
【发布时间】:2012-07-22 20:51:20
【问题描述】:

有什么方法可以让 sql 脚本文件同时兼容 MYSQL 和 MSSQL? MYSQL 和 MSSQL 应该能够使用该文件来执行该文件中包含的 SQL 脚本。 以下 SQL 语句只是一个示例。

   CREATE TABLE testTable(
   Name VARCHAR(20),
   Address VARCHAR(50),
   Gender VARCHAR(10)
   );

   INSERT INTO testTable
   VALUES
   ('Derp', 'ForeverAlone Street', 'Male'),
   ('Derpina', 'Whiterun Breezehome', 'Female');

   SELECT * FROM testTable;

PS, 我听说你可以使用 CSV 文件。我不知道这是不是真的。我在网上没有看到任何合适的例子。

编辑:不,您不能使用 csv 文件来执行语句。它们用于转储数据。一些 sql 语句在 MS SQL 和 MYSQL 中的写法不同。常用语句如 Create、select 语句在 MS SQL 和 MY SQL 中是相同的。其中一个区别可能是LOAD DATA INFILEBULK INSERT FROM

【问题讨论】:

  • 嗯...不要使用任何一个或另一个专有的功能?为什么不能为每个提供单独的脚本?这似乎是一个相当随意的要求。
  • 我正在制作一个帮助用户在表格中导出数据的 java 程序。它就像我系统的附加功能,因此用户不必使用单独的脚本文件。我听说你可以使用 CSV 文件来做到这一点。但是,csv 文件仅用于批量插入。还是谢谢

标签: mysql sql sql-server


【解决方案1】:

使用 ansi sql 将避免大多数问题,但我不确定是否有可能在所有情况下都 100% 交叉兼容

查看这里了解更多信息:ANSI SQL Manual

【讨论】:

  • 大声谢谢。嗯,我读了你发给我的链接。它类似于我正在寻找的东西,但它不是我正在寻找的东西。哦,好吧,我想你是礼仪。你不能有交叉兼容的 sql 脚本。
  • 这真的取决于你需要做什么。如果只是简单的选择、加入、分组等。一切都应该没问题。当你想做一些 MS SQL 或 Oracle 的事情时,比如 APPLY 或查询松散兼容性的游标
  • 我明白了。因此,让我们以上面显示的 sql 脚本为例。如果我将脚本保存为 test.sql,那么 MSSQL 和 MYSQL 应该可以使用 test.sql 了吗?
  • 我想是的,我唯一要改变的是将每个插入拆分成它自己的语句,所以 INSERT INTO testTable VALUES ('Derp', 'ForeverAlone Street', 'Male');插入测试表值('Derpina'、'Whiterun Breezehome'、'Female');我还没有测试以验证它们都可以运行,但是只需插入,您就可以在所有主要的 sql 数据库中运行
  • 嗯哦,是的,我明白你的意思。我现在下载 mssql 进行测试。谢谢大佬!
猜你喜欢
  • 2021-05-23
  • 1970-01-01
  • 2010-12-01
  • 2015-11-01
  • 2011-05-01
  • 2018-12-13
  • 1970-01-01
  • 2013-12-05
  • 1970-01-01
相关资源
最近更新 更多