GVKun编程网logo

将查询从MySql转换为Sqlite(mysql查询结果转换为字符串)

15

最近很多小伙伴都在问将查询从MySql转换为Sqlite和mysql查询结果转换为字符串这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展database–将SQLITESQL转储文

最近很多小伙伴都在问将查询从MySql转换为Sqlitemysql查询结果转换为字符串这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展database – 将SQLITE SQL转储文件转换为POSTGRESQL、mssql转换mysql的方法_MySQL、mssql转换mysql的方法小结_MySQL、Mysql实例mssql转换mysql的方法小结等相关知识,下面开始了哦!

本文目录一览:

将查询从MySql转换为Sqlite(mysql查询结果转换为字符串)

将查询从MySql转换为Sqlite(mysql查询结果转换为字符串)

我需要将此查询从MySQL格式转换为SQLite。我正在尝试自己,但发现了一些困难。

在SQLite中,curdate()和interval函数不存在。

select a.Date from (    select curdate() - INTERVAL (a.a + (10 * b.a) + (100 * c.a)) DAY as Date    from (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as a    cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as b    cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as c) awhere a.Date between ''2010-01-20'' and ''2010-01-24''

答案1

小编典典

这是基本语法:

select a.Date from (select date(''now'', ''-''||(a.a + (10 * b.a) + (100 * c.a))|| '' days'') as Date      from (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9           ) a cross join           (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9           ) b cross join           (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9           ) c    ) a;

我忽略了该where子句,因为这些日期是过去1000多个日期,因此他们无论如何都不会选择任何内容。

database – 将SQLITE SQL转储文件转换为POSTGRESQL

database – 将SQLITE SQL转储文件转换为POSTGRESQL

我一直在做开发使用sqlITE数据库与POSTGREsql生产。我只是用大量的数据更新我的本地数据库,并需要将特定的表传输到生产数据库。

基于运行sqlite数据库.dump> /the/path/to/sqlite-dumpfile.sql,sqlITE以以下格式输出表转储:

BEGIN TRANSACTION;
CREATE TABLE "courses_school" ("id" integer PRIMARY KEY,"department_count" integer NOT NULL DEFAULT 0,"the_id" integer UNIQUE,"school_name" varchar(150),"slug" varchar(50));
INSERT INTO "courses_school" VALUES(1,168,213,'TEST Name A',NULL);
INSERT INTO "courses_school" VALUES(2,656,'TEST Name B',NULL);
....
COMMIT;

如何将上述转换为POSTGREsql兼容的转储文件,我可以导入到我的生产服务器?

您应该能够将该转储文件直接馈入psql:
/path/to/psql -d database -U username -W < /the/path/to/sqlite-dumpfile.sql

如果希望id列为“自动递增”,则在表创建行中将其类型从“int”更改为“serial”。 Postgresql然后将一个序列附加到该列,以便具有NULL ID的INSERT将被自动分配下一个可用的值。 Postgresql也不会识别AUTOINCREMENT命令,所以这些需要删除。

您还需要检查sqlite模式中的datetime列,并将它们更改为Postgresql的时间戳(感谢Clay指出这一点)。

如果你的sqlite中有布尔值,那么你可以转换1和0和1 :: boolean和0 :: boolean(分别)或者你可以在转储的模式部分中将布尔值更改为一个整数,然后将它们修复手里面Postgresql后导入。

如果你的sqlite中有BLOB,那么你需要调整模式以使用bytea。你可能需要在一些decode calls as well混合。用你最喜欢的语言编写一个快速的不脏的复印机可能比修整sql更容易,如果你有很多BLOB要处理。

像往常一样,如果你有外键,那么你可能想调查set constraints all deferred以避免插入顺序问题,将命令放在BEGIN / COMMIT对中。

感谢Nicolas Riley的布尔,blob和约束注释。

如果你的代码,由一些sqlite3客户端生成,你需要删除它们。

PostGREsql也不能识别未签名的列,您可能想要删除它,或添加一个自定义的约束,如:

CREATE TABLE tablename (
    ...
    unsigned_column_name integer CHECK (unsigned_column_name > 0)
);

虽然sqlite默认为null值为“,Postgresql要求将它们设置为NULL。

sqlite转储文件中的语法似乎与Postgresql大部分兼容,所以你可以补丁几个东西,并将其提供给psql。通过sql INSERT导入大量数据可能需要一段时间,但它会工作。

mssql转换mysql的方法_MySQL

mssql转换mysql的方法_MySQL

bitsCN.com

神秘小强&1943

 1.导表结构

  使用MySQL生成create脚本的方法。找到生成要导出的脚本,按MySQL的语法修改一下到MySQL数据库中创建该表的列结构什么的。

  2.导表数据

  在MSSQL端使用bcp导出文本文件:

  bcp "SELECT * FROM dbname.dbo.tablename;" queryout tablename.txt -c -Slocalhostdb2005 -Usa

  其中""中是要导出的sql语句,-c指定使用 进行字段分隔,使用进行记录分隔,-S指定数据库服务器及实例,-U指定用户名,-P指定密码.

  在MySQL端使用mysqlimport 导入文本文件到相应表中

  mysqlimport -uroot -p databasename /home/test/tablename.txt

  其中-u指定用户名,-p指定密码,databasename指定数据库名称,表名与文件名相同。

bitsCN.com

mssql转换mysql的方法小结_MySQL

mssql转换mysql的方法小结_MySQL

mssql转换mysql的方法小结

方法一:
 1.导表结构

  使用MySQL生成create脚本的方法。找到生成要导出的脚本,按MySQL的语法修改一下到MySQL数据库中创建该表的列结构什么的。

  2.导表数据

  在MSSQL端使用bcp导出文本文件:

  bcp "Select * FROM dbname.dbo.tablename;" queryout tablename.txt -c -Slocalhost/db2005 -Usa

  其中""中是要导出的sql语句,-c指定使用/t进行字段分隔,使用/n进行记录分隔,-S指定数据库服务器及实例,-U指定用户名,-P指定密码.

  在MySQL端使用mysqlimport 导入文本文件到相应表中

  mysqlimport -uroot -p databasename /home/test/tablename.txt
登录后复制

  其中-u指定用户名,-p指定密码,databasename指定数据库名称,表名与文件名相同。

方法二:

MYSQL Migration Toolkit 应该是可以用的。
1、把MySQL Migration Toolkit安装在运行有MS SQL server的机器上;
2、此机器还需要安装java环境和jdbc驱动:
java环境去sun网站上下载,jdbc驱动去MySQL网站上下载(mysql-connector-java-5.0.5.zip),并且设置好路径的环境变量;
3、如果你原来的数据库里有中文字符,必须显式设置几个有关字符集的地方:
A. Source Database 选择Database System为MS SQL:
这里需要手动写jdbc连接串:点击界面下方的Advanced键,出现一个方框,提示输入 "Connection String:",在这里输入如下格式:

jdbc:jtds:sqlserver://IP:PORT/YOURDB_NAME;user=USER;password=PASSWD;charset=gb2312(or gbk);domain=
登录后复制

其中,大写 IP, PORT, YOURDB_NAME,USER, PASSWD都是要用实际MS SQL Server服务器的ip和端口,数据库名,数据库用户名,密码填写;

B. Target Database 同样需要手动编辑jdbc连接串:
点击界面下方的Advanced键,出现一个方框,提示输入"Connection String:"
在这里输入如下格式:

jdbc:mysql://IP:3306/?user=USER&password=PASSWD&useServerPrepStmts=false&characterEncoding=gbk
登录后复制

其中,大写 IP, USER, PASSWD都是要用实际MySQL服务器的ip,数据库用户名,密码填写

C. 选择sql server的schema和表
D. Object Mapping
修改"Migration of type MSSQL Table":
点击"Set Parameter",选择"User defined", 设置"charset=gb2312(or gbk), collation=gb2312(or gbk)_chinese_ci"
E. 之后没有别的选项,一直到最后
F. 移植完以后,用图形工具(MySQL query browser、SQLyog等)或用mysql客户端(命令行)联接,都可以看到中文。
在客户端(命令行),先执行

mysql> set names gb2312(or gbk);
登录后复制

方法三:
13号微软发布了最新的专用转换工具,下面是地址,支持mysql to 2005或者2008

以上就是mssql转换mysql的方法小结_MySQL的内容。

Mysql实例mssql转换mysql的方法小结

Mysql实例mssql转换mysql的方法小结

《MysqL实例mssql转换MysqL的方法小结》要点:
本文介绍了MysqL实例mssql转换MysqL的方法小结,希望对您有用。如果有疑问,可以联系我们。

方法一:
 1.导表结构

  使用MysqL生成create脚本的方法.找到生成要导出的脚本,按MysqL的语法修改一下到MysqL数据库中创建该表的列结构什么的.

  2.导表数据

  在MSsql端使用bcp导出文本文件:

  bcp "Select * FROM dbname.dbo.tablename;" queryout tablename.txt -c -Slocalhost\db2005 -Usa

  其中""中是要导出的sql语句,-c指定使用\t进行字段分隔,使用\n进行记录分隔,-S指定数据库服务器及实例,-U指定用户名,-P指定密码.

  在MysqL端使用mysqlimport 导入文本文件到相应表中

  mysqlimport -uroot -p databasename /home/test/tablename.txt

  其中-u指定用户名,-p指定密码,databasename指定数据库名称,表名与文件名相同.

方法二:

MysqL Migration Toolkit 应该是可以用的.
1、把MysqL Migration Toolkit安装在运行有MS sql server的机器上;
2、此机器还需要安装java环境和jdbc驱动:
java环境去sun网站上下载,jdbc驱动去MysqL网站上下载(mysql-connector-java-5.0.5.zip),并且设置好路径的环境变量;
3、如果你原来的数据库里有中文字符,必须显式设置几个有关字符集的地方:
A. Source Database 选择Database System为MS sql:
这里需要手动写jdbc连接串:点击界面下方的Advanced键,出现一个方框,提示输入 "Connection String:",在这里输入如下格式:
jdbc:jtds:sqlserver://IP:PORT/YOURDB_NAME;user=USER;password=PASSWD;charset=gb2312(or gbk);domain=

其中,大写 IP,PORT,YOURDB_NAME,USER,PASSWD都是要用实际MS sql Server服务器的ip和端口,数据库名,数据库用户名,密码填写;

B. Target Database 同样需要手动编辑jdbc连接串:
点击界面下方的Advanced键,提示输入"Connection String:"
在这里输入如下格式:

jdbc:MysqL://IP:3306/?user=USER&password=PASSWD&useServerPrepStmts=false&characterEncoding=gbk

其中,PASSWD都是要用实际MysqL服务器的ip,密码填写

C. 选择sql server的schema和表
D. Object Mapping
修改"Migration of type MSsql Table":
点击"Set Parameter",选择"User defined",设置"charset=gb2312(or gbk),collation=gb2312(or gbk)_chinese_ci"
E. 之后没有别的选项,一直到最后
F. 移植完以后,用图形工具(MysqL query browser、sqlyog等)或用MysqL客户端(命令行)联接,都可以看到中文.
在客户端(命令行),先执行
MysqL> set names gb2312(or gbk);
4、由于MS sql server和MysqL在语法格式和数据类型定义等方面有一定的差异,所以移植过程不是很简单,可能需要反复几次,修正语法格式和数据类型定义.MysqL Migration toolkit可以让用户手动修改生成的MysqL sql语句,在其中的"Manual Editing"一节

方法三:
13号微软发布了最新的专用转换工具,下面是地址,支持MysqL to 2005或者2008
/database/34633.html
官方下载地址
http://www.microsoft.com/downloads/details.aspx?FamilyID=c6f14640-da22-4604-aaaa-a45de4a0cd4a&displaylang=en

《MysqL实例mssql转换MysqL的方法小结》是否对您有启发,欢迎查看更多与《MysqL实例mssql转换MysqL的方法小结》相关教程,学精学透。小编PHP学院为您提供精彩教程。

今天关于将查询从MySql转换为Sqlitemysql查询结果转换为字符串的分享就到这里,希望大家有所收获,若想了解更多关于database – 将SQLITE SQL转储文件转换为POSTGRESQL、mssql转换mysql的方法_MySQL、mssql转换mysql的方法小结_MySQL、Mysql实例mssql转换mysql的方法小结等相关知识,可以在本站进行查询。

本文标签: