Android 中创建的数据库文件默认放在那里的
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 中创建的数据库文件默认放在那里的相关的知识,希望对你有一定的参考价值。
默认路径是/data/data/然后是你创建的包名,然后就找到你创建的数据库名字了
参考技术A 在根文件夹下的 /data/data/your package name/database/xxx.db下面。推荐用re浏览器访问。还可以直接查看数据库文件。
另外这里有安卓4.0目录结构的介绍。
http://blog.sina.com.cn/s/blog_c92f7b180101dtsw.html
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、php、Java等,还有ODBC接口,同样比起mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。 参考技术B data/data目录下 参考技术C 是的,找你创建工程的时候 写的那个包名下面的 database 下
如何为数据库中创建的所有表设置默认排序规则?
【中文标题】如何为数据库中创建的所有表设置默认排序规则?【英文标题】:How do I set default collation for all tables that are created in a database? 【发布时间】:2011-10-14 05:16:14 【问题描述】:我有一个从损坏的数据库中提取的数据库转储,我需要将其导入到全新安装中。但是,原来的数据库似乎已经设置为使用 utf8_unicode_ci。
当将此转储导入干净的数据库时,所有数据库都是使用默认的 utf8_general_ci 创建的,这会为我提供包括 ß
在内的单词的重复条目,因为一般会生成 'ß' == 's'
,而 utf8_unicode_ci 应该有 'ß' == 'ss'
。
但是,在导入mysql时,创建表时似乎总是选择默认的utf8_general_ci,即使我将数据库(架构)默认设置为utf8_unicode_ci。
有没有办法强制它使用 utf8_unicode_ci 创建表,而不必在我的转储中注入 alter table 语句?它有几 GB 大小,手动修改会很痛苦。
在系统范围内配置 MySQL 很好。
我试过设置:
collation-server=utf8_unicode_ci
在 my.cnf 中,但这似乎没有为表创建设置默认排序规则。
【问题讨论】:
不,我正在使用命令行导入,mysql db_name < dbdump.sql
【参考方案1】:
今天早上我正在处理同样的问题,我能够通过以下方式设置表格排序规则。
DROP TABLE IF EXISTS `agtAgentTypes`;
CREATE TABLE `agtAgentTypes` (
`agentTypeID` int(11) NOT NULL,
`agentType` varchar(50) DEFAULT NULL,
PRIMARY KEY (`agentTypeID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 DEFAULT COLLATE utf8_unicode_ci;
由于某种原因,引擎和字符集似乎需要一个 =,但如果有一个,排序规则就会出错。我试了一下,因为我注意到 MySQL Charset Examples 也没有使用 =。
这是针对 MySQL Community Server 5.5.32-cll-lve 进行测试的。
【讨论】:
太好了,它也对我有用。我一直在尝试使用=
并遇到错误。【参考方案2】:
如果您在创建语句中指定字符集,显然没有办法强制对新创建的表进行排序,这意味着如果您有:
CREATE TABLE foo
...
CHARSET=utf8;
它将隐式设置为 utf8_general_ci,这是该字符集的默认排序规则。这与数据库设置、系统设置和连接设置无关。
我最终调用了这个:
cat dump.sql|sed s/CHARSET=utf8/CHARSET=utf8\ COLLATE=utf8_unicode_ci/ > dump_replaced.sql
然后就等着了。
【讨论】:
【参考方案3】:如果您使用的是 phpmyadmin,请阅读以下文章:
http://kb.mediatemple.net/questions/138/Default+MySQL+character+set+and+collation#gs
或者试试这个方法
CREATE TABLE tbl_name (column_list)
[[DEFAULT] CHARACTER SET charset_name]
[COLLATE collation_name]]
ALTER TABLE tbl_name
[[DEFAULT] CHARACTER SET charset_name]
[COLLATE collation_name]
Reference
【讨论】:
但我不想更改创建语句,所有创建语句都在数 GB 大的转储中。 查看我在下面给出的链接。有一个关于如何使用 sed 更新转储中的编码的说明。 好吧,它说明了如何删除转储中的任何字符集规范。我最终在转储中直接使用 sed 替换了 CREATE 语句,因为字符集规范隐式设置了排序规则,而不考虑数据库或连接上的排序规则。以上是关于Android 中创建的数据库文件默认放在那里的的主要内容,如果未能解决你的问题,请参考以下文章
无法打开在 Android 中创建的 SQLite DB(文件已加密或不是数据库)
在 Windows 资源管理器中看不到在 android 中创建的文件 [重复]