我目前有一个相对较小的(4或5个表,5000行)MySQL数据库,我想转换为sqlite数据库.由于我可能不得不多次这样做,如果有人能推荐任何有用的工具,或者至少任何易于复制的方法,我将不胜感激.
(我对所涉及的数据库/机器有完全的管理员访问权限.)
www.sqlite.org上的下载页面似乎只有当前版本的链接,我想获得以前的版本.我看不到网站上历史版本的任何明显链接(除非我遗漏了一些明显的东西),似乎没有一个sourceforge项目.
如果存在这样的事情,有人能指出我在旧SQLite源版本的存档吗?
奈杰尔.
我不确定我是否在逻辑上犯了错误.
如果我有一个查询,我做一个空值的内连接,我总是得不到结果,还是会忽略连接并成功?例
user { id PK, name NVARCHAR NOT NULL, banStatus nullable reference }
Run Code Online (Sandbox Code Playgroud)
如果我写和u.banStatus我将不会收到任何行?
select * from user as u
join banstatus as b on u.banStatus=b.id
where id=1
Run Code Online (Sandbox Code Playgroud) 我搜索过SQLite文档并找不到任何内容,但我也在谷歌上搜索了一些结果.
SQLite是否有任何内置的标准偏差功能?
我想用android的SQLiteDatabase类的本机更新方法更新我的sql lite数据库.
ContentValues dataToInsert = new ContentValues();
dataToInsert.put("name", "flo");
dataToInsert.put("location", "flotown");
String where = "id" + "=" + id;
try{
db.update(DATABASE_TABLE, dataToInsert, where, null);
}
catch (Exception e){
String error = e.getMessage().toString();
}
Run Code Online (Sandbox Code Playgroud)
但是我得到以下错误:android.database.sqlite.SQLiteException:near"15":语法错误:,同时编译:UPDATE mytable SET location = ?, name =?WHERE id = 2010-09-21 15:05:36.995
我不知道应该是什么问题.不知何故,值不会到达sql语句.我使用insert方法做的几乎一样,并且工作得非常好.
很多,弗洛里安
只是想知道是否有一种方法来排序忽略大小写的查询结果.当前以大写字母开头的字段被排序并放在列表顶部,并且以小写字母开头的字段也被排序,但是放在大写字母之后.
谢谢 - 迈克
我的Android应用程序有一个SQLite数据库.我注意到我意外地使用"String"数据类型而不是"Text"数据类型定义了一个表.这是带字符串的代码:
private final String LISTDATES_CREATE = "create table if not exists ListDates (_id integer primary key autoincrement, ListName string not null, UpdateDate string not null);";
Run Code Online (Sandbox Code Playgroud)
这有效.它从未抛出错误,我可以存储和检索数据.但是,我无法在文档或Internet上的SQLite中找到对"String"数据类型的任何引用.通常,所有字符串类型数据都使用"text"定义,如下所示:
private final String LISTDATES_CREATE = "create table if not exists ListDates (_id integer primary key autoincrement, ListName text not null, UpdateDate text not null);";
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,使用"string"数据类型定义的字段与"text"数据类型之间的区别是什么?有区别吗?如果是这样,使用其中一个或另一个会产生什么后果?
我正在尝试复制我使用SQLite管理器创建的数据库,其中我做了:
CREATE TABLE "android_metadata" ("locale" TEXT DEFAULT 'en_US')
Run Code Online (Sandbox Code Playgroud)
和
INSERT INTO "android_metadata" VALUES ('en_US')
Run Code Online (Sandbox Code Playgroud)
我将所有主键命名为_id.我的数据库被复制(在第一次运行时,logcat中有各种红色消息); 此后,它只在我查询时出错.
主要活动
public class MainActivity extends Activity {
String CNAME=" ques",TABLE_NAME=" JAVAQ";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Setupdb dbobj=new Setupdb(this);
try {
//dbobj.close();
dbobj.createDataBase();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
dbobj.openDataBase();
dbobj.close();
try{
SQLiteDatabase sqdb=dbobj.getReadableDatabase();
Cursor c = sqdb.query(TABLE_NAME,
new String[] { CNAME },
null, null, null, null, null);
while (c.moveToNext()) {
String name …Run Code Online (Sandbox Code Playgroud) 我将我的项目从Visual Studio 2012移植到2013,并且sqlite.c将无法在其中编译.我收到这个编译时错误:
error C4996: 'GetVersionExA': was declared deprecated
error C4996: 'GetVersionExW' was declared deprecated
Run Code Online (Sandbox Code Playgroud)
我得到了最新版本的sqlite以确保它没有被占用,但它没有.我不知道该怎么办这个错误.我没有修改源代码; 我只是创建一个项目,包括sqlite.h和sqlite.c.谢谢.
这是一个愚蠢的问题,但我试图从SQLite下载页面在我的Windows 10 64位上安装SQLlite 3 ,我尝试了sqlite-dll-win64-x64-3170000.zip从Precompiled Binaries for Windows页面的i部分
但是当解压缩文件时,只有两个文件"sqlite3.def andsqlite3.dll`
有谁可以让我知道在哪里sqlite3.exe?据我所知,我们应该将所有这三个文件放在一起?
sqlite3.def
sqlite3.dll
sqlite3.exe
Run Code Online (Sandbox Code Playgroud)