加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite2MySQL 转换

发布时间:2020-12-12 19:52:27 所属栏目:百科 来源:网络整理
导读:SQLite2MySQL 还是得用工具,而且必须纯福利的才行(po jie ban)。网友推荐这神器,ESF Database Migration Toolkit Professional v7.3.27 v6 的不行,很多字段转不了,用 v7 or v8 吧! http://download.csdn.net/detail/liema2000/5169824 http://www.ttr

SQLite2MySQL

还是得用工具,而且必须纯福利的才行(po jie ban)。网友推荐这神器,ESF Database Migration Toolkit Professional v7.3.27

v6 的不行,很多字段转不了,用 v7 or v8 吧!

http://download.csdn.net/detail/liema2000/5169824

http://www.ttrar.com/html/ESF-Database-Migration-Toolkit-Profe.html

ESF Database Migration Toolkit Pro 8.2.07 | 37 Mb

SQL COUNT 函数返回 int

RS 获取 COUNT() 值的时候,直接 getInt(1) 抛出 before start 异常,必须先 resultset.next() 一下才行;SQLite 无须这样

SELECT COUNT(id) AS count FROM news  WHERE

JDBC 兼容代码如下:

if(jdbcConn.toString().indexOf("MySQL") != -1){
	arr = resultset.next() ?  resultset.getInt(1) : null;
}else{
	// sqlite
	arr = resultset.isBeforeFirst() ? resultset.getInt(1) : null;
}
后来发现 SQLite 用 MySQL 的方法也行。

不能获取 mysql alias 名称

获取表各个字段的元数据时,发现不能获取 mysql alias 名称,也就是 table.xx AS foo,不能遍历出这个 foo。

var columnName = ResultSetMetaData.getColumnName(colIndex);
后来发现应该用 getColumnLabel() 而不是 getColumnName();

觉得 SQLite 不够严谨,而 MySQL 有作区分了。

CREATE 返回主键

必须这样,SQLIite 不用。

rowNumber = statement.executeUpdate(sql,Statement.RETURN_GENERATED_KEYS);
ResultSet rs = statement.getGeneratedKeys();// 创建新纪录,返回id
if (rs.next()) {  
	rowNumber = rs.getInt(1);   
//		                System.out.println("数据主键:" + id);   
} 

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读