<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>狂人山庄 &#124; Silence,声仔,吴洪声,奶罩 &#187; iphone</title>
	<atom:link href="http://wuhongsheng.com/tag/iphone/feed/" rel="self" type="application/rss+xml" />
	<link>http://wuhongsheng.com</link>
	<description>响应我党号召,全面建设和谐博客,坚持和谐写博的路线不动摇</description>
	<lastBuildDate>Mon, 14 Jun 2010 06:54:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>联通，我的号码3G业务何时才能正常使用？</title>
		<link>http://wuhongsheng.com/life/2009/11/%e8%81%94%e9%80%9a%ef%bc%8c%e6%88%91%e7%9a%84%e5%8f%b7%e7%a0%813g%e4%b8%9a%e5%8a%a1%e4%bd%95%e6%97%b6%e6%89%8d%e8%83%bd%e6%ad%a3%e5%b8%b8%e4%bd%bf%e7%94%a8%ef%bc%9f/</link>
		<comments>http://wuhongsheng.com/life/2009/11/%e8%81%94%e9%80%9a%ef%bc%8c%e6%88%91%e7%9a%84%e5%8f%b7%e7%a0%813g%e4%b8%9a%e5%8a%a1%e4%bd%95%e6%97%b6%e6%89%8d%e8%83%bd%e6%ad%a3%e5%b8%b8%e4%bd%bf%e7%94%a8%ef%bc%9f/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 11:55:00 +0000</pubDate>
		<dc:creator>吴洪声</dc:creator>
				<category><![CDATA[生活]]></category>
		<category><![CDATA[10010]]></category>
		<category><![CDATA[3g]]></category>
		<category><![CDATA[china unicom]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[wcdma]]></category>
		<category><![CDATA[wo]]></category>
		<category><![CDATA[湛江]]></category>
		<category><![CDATA[联通]]></category>

		<guid isPermaLink="false">http://wuhongsheng.com/?p=349</guid>
		<description><![CDATA[背景提示：我上个月把156的号码转为了386套餐，到现在为止仍然无法正常使用3G业务，电话投诉N次均未解决，于是写了以下投诉信，分5段在10010.com的网上营业厅投诉（联通太烂，投诉内容不能超过255字）。 本月开始我转到3G套餐后，于1日上午起来后发现手机无法上网，连GPRS都连接不上（手机是iPhone 3GS），但同一台手机使用烟台本地的186号码正常，可以证明手机设置上没问题。并且我试过重置手机设置并重新进行设置，均失败。之后打075910010投诉，因我人在烟台出差，湛江让我联系烟台10010，于是联系烟台10010反映此情况。烟台10010分三次答复3G信号在我所在的位置覆盖没问题，因我是外地号码，他们无法查到我的其他数据，建议我联系湛江。重新投诉到湛江，湛江方面让我更换手机测试。之后我更换过多台手机测试（包括iPhone 3GS、HTC Hero、Nokia、索爱），均无法连上3G或者GPRS。但这些手机换上烟台本地的186卡均可正常使用。继续投诉到湛江，湛江方面答复我的帐号数据没问题。我回答我在test3g论坛上发现有不少用户均碰到此情况，都是反映到10010后，重新开通3G套餐解决，湛江方面对此建议没有做明确答复。 我在6-8号出差到南京，在南京的时候特地带上了两台支持WCDMA的手机（iPhone 3GS、HTC Hero），测试发现湛江的156号码（本机）在南京也无法连接上3G或者GPRS网络，但烟台的186卡一切正常。更换手机亦然。 到目前为止（9号），湛江方面仍然没有对我这个号码所碰到的问题提出任何建设性的建议，或者给出任何有效解决问题的方法。 除此以外，我这个号码还存在以下问题 1.我在10010.com上面办理“上网流量提醒”业务的时候，每次系统均提示“对不起，系统故障，请稍后再试”。烟台186号码无此问题。 2.wo邮箱，我登录进去后，提示我“您现在正在使用的是：免费邮箱”，但正常情况下我这个月应该是6元套餐。我联系过你们联通wo邮箱的产品经理xx，xx在后台查看后确认我的邮箱是0元邮箱，并且建议我打10010修改。我随即给075910010打电话反馈此问题，湛江方面的答复让我大跌眼镜：我的手机号码下面有两个wo邮箱，一个是免费版本，一个是6元版本。之后客服建议我注销免费版本的邮箱，这样我就能用6元版。我提供密码后，客服答复免费版本的邮箱不能注销。此问题湛江方面同样没给我任何后续的处理意见。我很困惑，这样岂不是我就只能用免费邮箱，而享受不到我套餐应该享受到的6元版本？ 结合上面的情况，我觉得我的手机号码数据肯定是有问题，至少在wo邮箱和10010.com上就存在问题。而并不是湛江方面所说的所有数据都正常。 在此，我希望联通能： 1.马上解决我所碰到的所有问题 2.因为GPRS也无法连接，对我的工作造成了很大的影响，让我不得不花费额外的金钱和时间来连接网络处理日常事务。所以我要求联通对我进行合理的补偿。 3.对我因为多次拨打075910010所产生的长途话费共27.6元进行返还（截止到9号，如果未来对于以上问题仍未解决，需要我继续拨打075910010，也一并计入返还）。 4.对11月1日-3G问题解决日前1天所收的3G上网套餐费用进行返还。因为我订购了386的套餐，理应享受到386套餐所提供的服务。联通无法为我提供完整的服务，那么就必须对未提供部分做出返还或者其他补偿 5.对无法使用6元版本的wo邮箱作出补偿。理由同上。 6.如果在11月15日以前无法解决我所碰到的问题，当月套餐费减半收取。也即只收取人民币193元。 7.如果在11月20日以前仍然无法解决我所碰到的问题，减免当月套餐所有费用。也即减免人民币386元。 No related posts. Related posts brought to you by Yet Another Related Posts Plugin.


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>背景提示：我上个月把156的号码转为了386套餐，到现在为止仍然无法正常使用3G业务，电话投诉N次均未解决，于是写了以下投诉信，分5段在10010.com的网上营业厅投诉（联通太烂，投诉内容不能超过255字）。</p>
<p>本月开始我转到3G套餐后，于1日上午起来后发现手机无法上网，连GPRS都连接不上（手机是iPhone 3GS），但同一台手机使用烟台本地的186号码正常，可以证明手机设置上没问题。并且我试过重置手机设置并重新进行设置，均失败。之后打075910010投诉，因我人在烟台出差，湛江让我联系烟台10010，于是联系烟台10010反映此情况。烟台10010分三次答复3G信号在我所在的位置覆盖没问题，因我是外地号码，他们无法查到我的其他数据，建议我联系湛江。重新投诉到湛江，湛江方面让我更换手机测试。之后我更换过多台手机测试（包括iPhone 3GS、HTC Hero、Nokia、索爱），均无法连上3G或者GPRS。但这些手机换上烟台本地的186卡均可正常使用。继续投诉到湛江，湛江方面答复我的帐号数据没问题。我回答我在test3g论坛上发现有不少用户均碰到此情况，都是反映到10010后，重新开通3G套餐解决，湛江方面对此建议没有做明确答复。<br />
我在6-8号出差到南京，在南京的时候特地带上了两台支持WCDMA的手机（iPhone 3GS、HTC Hero），测试发现湛江的156号码（本机）在南京也无法连接上3G或者GPRS网络，但烟台的186卡一切正常。更换手机亦然。<br />
到目前为止（9号），湛江方面仍然没有对我这个号码所碰到的问题提出任何建设性的建议，或者给出任何有效解决问题的方法。</p>
<p>除此以外，我这个号码还存在以下问题<br />
1.我在10010.com上面办理“上网流量提醒”业务的时候，每次系统均提示“对不起，系统故障，请稍后再试”。烟台186号码无此问题。<br />
2.wo邮箱，我登录进去后，提示我“您现在正在使用的是：免费邮箱”，但正常情况下我这个月应该是6元套餐。我联系过你们联通wo邮箱的产品经理xx，xx在后台查看后确认我的邮箱是0元邮箱，并且建议我打10010修改。我随即给075910010打电话反馈此问题，湛江方面的答复让我大跌眼镜：我的手机号码下面有两个wo邮箱，一个是免费版本，一个是6元版本。之后客服建议我注销免费版本的邮箱，这样我就能用6元版。我提供密码后，客服答复免费版本的邮箱不能注销。此问题湛江方面同样没给我任何后续的处理意见。我很困惑，这样岂不是我就只能用免费邮箱，而享受不到我套餐应该享受到的6元版本？</p>
<p>结合上面的情况，我觉得我的手机号码数据肯定是有问题，至少在wo邮箱和10010.com上就存在问题。而并不是湛江方面所说的所有数据都正常。</p>
<p>在此，我希望联通能：<br />
1.马上解决我所碰到的所有问题<br />
2.因为GPRS也无法连接，对我的工作造成了很大的影响，让我不得不花费额外的金钱和时间来连接网络处理日常事务。所以我要求联通对我进行合理的补偿。<br />
3.对我因为多次拨打075910010所产生的长途话费共27.6元进行返还（截止到9号，如果未来对于以上问题仍未解决，需要我继续拨打075910010，也一并计入返还）。<br />
4.对11月1日-3G问题解决日前1天所收的3G上网套餐费用进行返还。因为我订购了386的套餐，理应享受到386套餐所提供的服务。联通无法为我提供完整的服务，那么就必须对未提供部分做出返还或者其他补偿<br />
5.对无法使用6元版本的wo邮箱作出补偿。理由同上。<br />
6.如果在11月15日以前无法解决我所碰到的问题，当月套餐费减半收取。也即只收取人民币193元。<br />
7.如果在11月20日以前仍然无法解决我所碰到的问题，减免当月套餐所有费用。也即减免人民币386元。</p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://wuhongsheng.com/life/2009/11/%e8%81%94%e9%80%9a%ef%bc%8c%e6%88%91%e7%9a%84%e5%8f%b7%e7%a0%813g%e4%b8%9a%e5%8a%a1%e4%bd%95%e6%97%b6%e6%89%8d%e8%83%bd%e6%ad%a3%e5%b8%b8%e4%bd%bf%e7%94%a8%ef%bc%9f/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iPhone数据库结构</title>
		<link>http://wuhongsheng.com/mac/2007/10/iphone-database-structure/</link>
		<comments>http://wuhongsheng.com/mac/2007/10/iphone-database-structure/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 12:01:38 +0000</pubDate>
		<dc:creator>吴洪声</dc:creator>
				<category><![CDATA[mac]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://wuhongsheng.com/mac/2007/10/iphone-database-structure/</guid>
		<description><![CDATA[/* * iphone database structure * @author zye * @contact zye@tudou.com * @update 20070924 * @version 0.1 * @url http://yegq.yeax.com/?p=162 * @copyleft 此文档可随意分发。如果你发布的iphone应用得益于此文档，建议注明，或给我email，共贺之。 */ 一、AddressBook.sqlitedb 通讯录数据库 location: /private/var/root/Library/AddressBook/AddressBook.sqlitedb 1.ABGroup 联系人分组信息 ROWID:组ID,自增PK Name:组名 2.ABGroupChanges 分组信息更新 record: type: 3.ABGroupMembers 组联系人 UID: PK group_id：组ID,对应ABGroup.ROWID member_type: 组员类别 member_id: 组员(联系人)ID,对应ABPerson.ROWID 注意:UNIQUE(group_id, member_type, member_id) 4.ABMultiValue 存储联系人的各种联系方式 UID: PK record_id: 联系人ID,对应ABPerson.ROWID property: [...]


Related posts:<ol><li><a href='http://wuhongsheng.com/it/2010/03/mac-vpn-split-route/' rel='bookmark' title='Permanent Link: Mac下VPN设置多网关，让国内流量不走国外'>Mac下VPN设置多网关，让国内流量不走国外</a> <small>经常要翻墙，但又不想访问国内网站的时候也走国外的VPN。简单写了个脚本，让国内的流量直接走国内的网关，国外网站则走VPN。这样每次上网都可以直接拨上VPN，又不影响网站的访问。 使用方法：Mac下先设置所有流量走VPN，拨上VPN后，用root权限（sudo）执行下面的脚本。 Mac OS X 10.6.2测试通过 #!/bin/sh # SCRIPT WRITTEN...</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>/*<br />
* iphone database structure<br />
* @author zye<br />
* @contact zye@tudou.com<br />
* @update 20070924<br />
* @version 0.1<br />
* @url http://yegq.yeax.com/?p=162<br />
* @copyleft 此文档可随意分发。如果你发布的iphone应用得益于此文档，建议注明，或给我email，共贺之。<br />
*/<br />
一、AddressBook.sqlitedb 通讯录数据库</p>
<p>location: /private/var/root/Library/AddressBook/AddressBook.sqlitedb</p>
<p>1.ABGroup 联系人分组信息<br />
ROWID:组ID,自增PK<br />
Name:组名</p>
<p>2.ABGroupChanges 分组信息更新<br />
record:<br />
type:</p>
<p>3.ABGroupMembers 组联系人<br />
UID: PK<br />
group_id：组ID,对应ABGroup.ROWID<br />
member_type: 组员类别<br />
member_id: 组员(联系人)ID,对应ABPerson.ROWID<br />
注意:UNIQUE(group_id, member_type, member_id)</p>
<p>4.ABMultiValue 存储联系人的各种联系方式<br />
UID: PK<br />
record_id: 联系人ID,对应ABPerson.ROWID<br />
property: 属性值. 3.电话; 4.email; 待补充…<br />
identifier: 标识符.0,1,2,3,4,目前所知用于排序<br />
label: 标志值. 1.mobile;2.home;3.work;4.other;5.homepage(URL) 对应ABMultiValueLabel.value<br />
value: 值. 例如一个手机号码13800138000,或一个email地址foo@bar.com</p>
<p>5.ABMultiValueEntry (未知)<br />
parent_id: (未知)<br />
key: (未知)<br />
value: (未知)<br />
注意:UNIQUE(parent_id, key)</p>
<p>6.ABMultiValueEntryKey (未知)<br />
value: (未知)<br />
注意:UNIQUE(value)</p>
<p>7.ABMultiValueLabel 联系方式标志值列表<br />
value: 见ABMultiValue.label</p>
<p>8.ABPerson<br />
ROWID 自增PK,也是联系人的唯一标识<br />
First 名字<br />
Last 姓<br />
Middle (未定)<br />
FirstPhonetic (未定,貌似留作语音拨号用的)<br />
MiddlePhonetic (未定,貌似留作语音拨号用的)<br />
LastPhonetic (未定,貌似留作语音拨号用的)<br />
Organization 所在公司,组织<br />
Department 所在部门<br />
Note 注释<br />
Kind 未定<br />
Birthday 生日<br />
JobTitle 头衔<br />
Nickname 昵称<br />
Prefix 前缀<br />
Suffix 后缀<br />
FirstSort 排序用(具体未知)<br />
LastSort 排序用(具体未知)<br />
CreationDate 创建时间<br />
ModificationDate 最后修改时间<br />
CompositeNameFallback (未知)</p>
<p>9.ABPersonChanges (未知)<br />
record<br />
type</p>
<p>10.ABPersonMultiValueDeletes (未知)<br />
record_id<br />
property_id<br />
identifier</p>
<p>11.ABPhoneLastFour 电话号码后四位匹配表<br />
multivalue_id 对应ABMultiValue.UID<br />
value 电话号码后四位</p>
<p>12.ABRecent (未知)<br />
date<br />
name<br />
property<br />
value</p>
<p>13.sorting_first_section_list (未知)<br />
character<br />
number</p>
<p>14.sorting_last_section_list (未知)<br />
character<br />
number</p>
<p>15.sqlite_sequence (用于记录序列)<br />
name:表命,如ABPerson<br />
seq: 最新序列号</p>
<p>— ==========下面是建表语句==========</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> ABGroup <span style="color: #66cc66;">&#40;</span>ROWID INTEGER <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> AUTOINCREMENT<span style="color: #66cc66;">,</span> Name TEXT<span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> ABGroupChanges <span style="color: #66cc66;">&#40;</span>record INTEGER<span style="color: #66cc66;">,</span> type INTEGER<span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> ABGroupMembers <span style="color: #66cc66;">&#40;</span>UID INTEGER <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span><span style="color: #66cc66;">,</span> group_id INTEGER<span style="color: #66cc66;">,</span> member_type INTEGER<span style="color: #66cc66;">,</span> member_id INTEGER<span style="color: #66cc66;">,</span> <span style="color: #993333; font-weight: bold;">UNIQUE</span><span style="color: #66cc66;">&#40;</span>group_id<span style="color: #66cc66;">,</span> member_type<span style="color: #66cc66;">,</span> member_id<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> ABMultiValue <span style="color: #66cc66;">&#40;</span>UID INTEGER <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span><span style="color: #66cc66;">,</span> record_id INTEGER<span style="color: #66cc66;">,</span> property INTEGER<span style="color: #66cc66;">,</span> identifier INTEGER<span style="color: #66cc66;">,</span> label INTEGER<span style="color: #66cc66;">,</span> value TEXT<span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> ABMultiValueEntry <span style="color: #66cc66;">&#40;</span>parent_id INTEGER<span style="color: #66cc66;">,</span> <span style="color: #993333; font-weight: bold;">KEY</span> INTEGER<span style="color: #66cc66;">,</span> value TEXT<span style="color: #66cc66;">,</span> <span style="color: #993333; font-weight: bold;">UNIQUE</span><span style="color: #66cc66;">&#40;</span>parent_id<span style="color: #66cc66;">,</span> <span style="color: #993333; font-weight: bold;">KEY</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> ABMultiValueEntryKey <span style="color: #66cc66;">&#40;</span>value TEXT<span style="color: #66cc66;">,</span> <span style="color: #993333; font-weight: bold;">UNIQUE</span><span style="color: #66cc66;">&#40;</span>value<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> ABMultiValueLabel <span style="color: #66cc66;">&#40;</span>value TEXT<span style="color: #66cc66;">,</span> <span style="color: #993333; font-weight: bold;">UNIQUE</span><span style="color: #66cc66;">&#40;</span>value<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> ABPerson <span style="color: #66cc66;">&#40;</span>ROWID INTEGER <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> AUTOINCREMENT<span style="color: #66cc66;">,</span> First TEXT<span style="color: #66cc66;">,</span> Last TEXT<span style="color: #66cc66;">,</span> Middle TEXT<span style="color: #66cc66;">,</span> FirstPhonetic TEXT<span style="color: #66cc66;">,</span> MiddlePhonetic TEXT<span style="color: #66cc66;">,</span> LastPhonetic TEXT<span style="color: #66cc66;">,</span> Organization TEXT<span style="color: #66cc66;">,</span> Department TEXT<span style="color: #66cc66;">,</span> Note TEXT<span style="color: #66cc66;">,</span> Kind INTEGER<span style="color: #66cc66;">,</span> Birthday TEXT<span style="color: #66cc66;">,</span> JobTitle TEXT<span style="color: #66cc66;">,</span> Nickname TEXT<span style="color: #66cc66;">,</span> Prefix TEXT<span style="color: #66cc66;">,</span> Suffix TEXT<span style="color: #66cc66;">,</span> FirstSort TEXT<span style="color: #66cc66;">,</span> LastSort TEXT<span style="color: #66cc66;">,</span> CreationDate INTEGER<span style="color: #66cc66;">,</span> ModificationDate INTEGER<span style="color: #66cc66;">,</span> CompositeNameFallback TEXT<span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> ABPersonChanges <span style="color: #66cc66;">&#40;</span>record INTEGER<span style="color: #66cc66;">,</span> type INTEGER<span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> ABPersonMultiValueDeletes <span style="color: #66cc66;">&#40;</span>record_id INTEGER<span style="color: #66cc66;">,</span> property_id INTEGER<span style="color: #66cc66;">,</span> identifier INTEGER<span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> ABPhoneLastFour <span style="color: #66cc66;">&#40;</span>multivalue_id INTEGER <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span><span style="color: #66cc66;">,</span> value TEXT<span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> ABRecent<span style="color: #66cc66;">&#40;</span>date INTEGER<span style="color: #66cc66;">,</span> name<span style="color: #66cc66;">,</span> property INTEGER<span style="color: #66cc66;">,</span> value<span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> sorting_first_section_list<span style="color: #66cc66;">&#40;</span>character<span style="color: #66cc66;">,</span> number<span style="color: #66cc66;">,</span> <span style="color: #993333; font-weight: bold;">UNIQUE</span><span style="color: #66cc66;">&#40;</span>character<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> sorting_last_section_list<span style="color: #66cc66;">&#40;</span>character<span style="color: #66cc66;">,</span> number<span style="color: #66cc66;">,</span> <span style="color: #993333; font-weight: bold;">UNIQUE</span><span style="color: #66cc66;">&#40;</span>character<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> sqlite_sequence<span style="color: #66cc66;">&#40;</span>name TEXT<span style="color: #66cc66;">,</span> seq INTEGER<span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>— ==========下面是创建索引==========</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">INDEX</span> ABMultiValueRecordIDIndex <span style="color: #993333; font-weight: bold;">ON</span> ABMultiValue<span style="color: #66cc66;">&#40;</span>record_id<span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">INDEX</span> ABMultiValueLabelIndex <span style="color: #993333; font-weight: bold;">ON</span> ABMultiValue<span style="color: #66cc66;">&#40;</span>label<span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">INDEX</span> ABMultiValueEntryKeyIndex <span style="color: #993333; font-weight: bold;">ON</span> ABMultiValueEntry<span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">KEY</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">INDEX</span> ABFirstSortIndex <span style="color: #993333; font-weight: bold;">ON</span> ABPerson<span style="color: #66cc66;">&#40;</span>FirstSort<span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">INDEX</span> ABLastSortIndex <span style="color: #993333; font-weight: bold;">ON</span> ABPerson<span style="color: #66cc66;">&#40;</span>LastSort<span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">INDEX</span> ABPhoneLastFourIndex <span style="color: #993333; font-weight: bold;">ON</span> ABPhoneLastFour<span style="color: #66cc66;">&#40;</span>value<span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">INDEX</span> ABRecent_value_index <span style="color: #993333; font-weight: bold;">ON</span> ABRecent<span style="color: #66cc66;">&#40;</span>property<span style="color: #66cc66;">,</span> value<span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">INDEX</span> ABRecent_date_index <span style="color: #993333; font-weight: bold;">ON</span> ABRecent<span style="color: #66cc66;">&#40;</span>property<span style="color: #66cc66;">,</span> date<span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>— ==========下面是创建触发器==========</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TRIGGER</span> delete_phone_last_four AFTER <span style="color: #993333; font-weight: bold;">DELETE</span> <span style="color: #993333; font-weight: bold;">ON</span> ABMultiValue
BEGIN
<span style="color: #993333; font-weight: bold;">DELETE</span> <span style="color: #993333; font-weight: bold;">FROM</span> ABPhoneLastFour <span style="color: #993333; font-weight: bold;">WHERE</span> multivalue_id <span style="color: #66cc66;">=</span> OLD<span style="color: #66cc66;">.</span>UID;
END;
&nbsp;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TRIGGER</span> sorting_first_prefix_trigger AFTER <span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">ON</span> ABPerson
BEGIN
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">OR</span> <span style="color: #993333; font-weight: bold;">REPLACE</span> <span style="color: #993333; font-weight: bold;">INTO</span> sorting_first_section_list <span style="color: #993333; font-weight: bold;">VALUES</span><span style="color: #66cc66;">&#40;</span>substr<span style="color: #66cc66;">&#40;</span>IFNULL<span style="color: #66cc66;">&#40;</span>NEW<span style="color: #66cc66;">.</span>FirstSort<span style="color: #66cc66;">,</span> ‘~’<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">+</span> IFNULL<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> number <span style="color: #993333; font-weight: bold;">FROM</span> sorting_first_section_list <span style="color: #993333; font-weight: bold;">WHERE</span> character <span style="color: #66cc66;">=</span> substr<span style="color: #66cc66;">&#40;</span>IFNULL<span style="color: #66cc66;">&#40;</span>NEW<span style="color: #66cc66;">.</span>FirstSort<span style="color: #66cc66;">,</span> ‘~’<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
END;
&nbsp;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TRIGGER</span> update_first_prefix_trigger AFTER <span style="color: #993333; font-weight: bold;">UPDATE</span> <span style="color: #993333; font-weight: bold;">ON</span> ABPerson
BEGIN
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">OR</span> <span style="color: #993333; font-weight: bold;">REPLACE</span> <span style="color: #993333; font-weight: bold;">INTO</span> sorting_first_section_list <span style="color: #993333; font-weight: bold;">VALUES</span><span style="color: #66cc66;">&#40;</span>substr<span style="color: #66cc66;">&#40;</span>IFNULL<span style="color: #66cc66;">&#40;</span>OLD<span style="color: #66cc66;">.</span>FirstSort<span style="color: #66cc66;">,</span> ‘~’<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> number <span style="color: #993333; font-weight: bold;">FROM</span> sorting_first_section_list <span style="color: #993333; font-weight: bold;">WHERE</span> character <span style="color: #66cc66;">=</span> substr<span style="color: #66cc66;">&#40;</span>IFNULL<span style="color: #66cc66;">&#40;</span>OLD<span style="color: #66cc66;">.</span>FirstSort<span style="color: #66cc66;">,</span> ‘~’<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">OR</span> <span style="color: #993333; font-weight: bold;">REPLACE</span> <span style="color: #993333; font-weight: bold;">INTO</span> sorting_first_section_list <span style="color: #993333; font-weight: bold;">VALUES</span><span style="color: #66cc66;">&#40;</span>substr<span style="color: #66cc66;">&#40;</span>IFNULL<span style="color: #66cc66;">&#40;</span>NEW<span style="color: #66cc66;">.</span>FirstSort<span style="color: #66cc66;">,</span> ‘~’<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">+</span> IFNULL<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> number <span style="color: #993333; font-weight: bold;">FROM</span> sorting_first_section_list <span style="color: #993333; font-weight: bold;">WHERE</span> character <span style="color: #66cc66;">=</span> substr<span style="color: #66cc66;">&#40;</span>IFNULL<span style="color: #66cc66;">&#40;</span>NEW<span style="color: #66cc66;">.</span>FirstSort<span style="color: #66cc66;">,</span> ‘~’<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
END;
&nbsp;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TRIGGER</span> delete_first_prefix_trigger AFTER <span style="color: #993333; font-weight: bold;">DELETE</span> <span style="color: #993333; font-weight: bold;">ON</span> ABPerson
BEGIN
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">OR</span> <span style="color: #993333; font-weight: bold;">REPLACE</span> <span style="color: #993333; font-weight: bold;">INTO</span> sorting_first_section_list <span style="color: #993333; font-weight: bold;">VALUES</span><span style="color: #66cc66;">&#40;</span>substr<span style="color: #66cc66;">&#40;</span>IFNULL<span style="color: #66cc66;">&#40;</span>OLD<span style="color: #66cc66;">.</span>FirstSort<span style="color: #66cc66;">,</span> ‘~’<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> number <span style="color: #993333; font-weight: bold;">FROM</span> sorting_first_section_list <span style="color: #993333; font-weight: bold;">WHERE</span> character <span style="color: #66cc66;">=</span> substr<span style="color: #66cc66;">&#40;</span>IFNULL<span style="color: #66cc66;">&#40;</span>OLD<span style="color: #66cc66;">.</span>FirstSort<span style="color: #66cc66;">,</span> ‘~’<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
END;
&nbsp;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TRIGGER</span> sorting_last_prefix_trigger AFTER <span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">ON</span> ABPerson
BEGIN
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">OR</span> <span style="color: #993333; font-weight: bold;">REPLACE</span> <span style="color: #993333; font-weight: bold;">INTO</span> sorting_last_section_list <span style="color: #993333; font-weight: bold;">VALUES</span><span style="color: #66cc66;">&#40;</span>substr<span style="color: #66cc66;">&#40;</span>IFNULL<span style="color: #66cc66;">&#40;</span>NEW<span style="color: #66cc66;">.</span>LastSort<span style="color: #66cc66;">,</span> ‘~’<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">+</span> IFNULL<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> number <span style="color: #993333; font-weight: bold;">FROM</span> sorting_last_section_list <span style="color: #993333; font-weight: bold;">WHERE</span> character <span style="color: #66cc66;">=</span> substr<span style="color: #66cc66;">&#40;</span>IFNULL<span style="color: #66cc66;">&#40;</span>NEW<span style="color: #66cc66;">.</span>LastSort<span style="color: #66cc66;">,</span> ‘~’<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
END;
&nbsp;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TRIGGER</span> update_last_prefix_trigger AFTER <span style="color: #993333; font-weight: bold;">UPDATE</span> <span style="color: #993333; font-weight: bold;">ON</span> ABPerson
BEGIN
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">OR</span> <span style="color: #993333; font-weight: bold;">REPLACE</span> <span style="color: #993333; font-weight: bold;">INTO</span> sorting_last_section_list <span style="color: #993333; font-weight: bold;">VALUES</span><span style="color: #66cc66;">&#40;</span>substr<span style="color: #66cc66;">&#40;</span>IFNULL<span style="color: #66cc66;">&#40;</span>OLD<span style="color: #66cc66;">.</span>LastSort<span style="color: #66cc66;">,</span> ‘~’<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> number <span style="color: #993333; font-weight: bold;">FROM</span> sorting_last_section_list <span style="color: #993333; font-weight: bold;">WHERE</span> character <span style="color: #66cc66;">=</span> substr<span style="color: #66cc66;">&#40;</span>IFNULL<span style="color: #66cc66;">&#40;</span>OLD<span style="color: #66cc66;">.</span>LastSort<span style="color: #66cc66;">,</span> ‘~’<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">OR</span> <span style="color: #993333; font-weight: bold;">REPLACE</span> <span style="color: #993333; font-weight: bold;">INTO</span> sorting_last_section_list <span style="color: #993333; font-weight: bold;">VALUES</span><span style="color: #66cc66;">&#40;</span>substr<span style="color: #66cc66;">&#40;</span>IFNULL<span style="color: #66cc66;">&#40;</span>NEW<span style="color: #66cc66;">.</span>LastSort<span style="color: #66cc66;">,</span> ‘~’<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">+</span> IFNULL<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> number <span style="color: #993333; font-weight: bold;">FROM</span> sorting_last_section_list <span style="color: #993333; font-weight: bold;">WHERE</span> character <span style="color: #66cc66;">=</span> substr<span style="color: #66cc66;">&#40;</span>IFNULL<span style="color: #66cc66;">&#40;</span>NEW<span style="color: #66cc66;">.</span>LastSort<span style="color: #66cc66;">,</span> ‘~’<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
END;
&nbsp;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TRIGGER</span> delete_last_prefix_trigger AFTER <span style="color: #993333; font-weight: bold;">DELETE</span> <span style="color: #993333; font-weight: bold;">ON</span> ABPerson
BEGIN
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">OR</span> <span style="color: #993333; font-weight: bold;">REPLACE</span> <span style="color: #993333; font-weight: bold;">INTO</span> sorting_last_section_list <span style="color: #993333; font-weight: bold;">VALUES</span><span style="color: #66cc66;">&#40;</span>substr<span style="color: #66cc66;">&#40;</span>IFNULL<span style="color: #66cc66;">&#40;</span>Old<span style="color: #66cc66;">.</span>LastSort<span style="color: #66cc66;">,</span> ‘~’<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> number <span style="color: #993333; font-weight: bold;">FROM</span> sorting_last_section_list <span style="color: #993333; font-weight: bold;">WHERE</span> character <span style="color: #66cc66;">=</span> substr<span style="color: #66cc66;">&#40;</span>IFNULL<span style="color: #66cc66;">&#40;</span>Old<span style="color: #66cc66;">.</span>LastSort<span style="color: #66cc66;">,</span> ‘~’<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
END;</pre></div></div>

<p>二、notes.db 记事本数据库</p>
<p>location: /private/var/root/Library/Notes/notes.db</p>
<p>1.Note 摘要信息记录表<br />
creation_date: 创建时间<br />
title: 标题<br />
summary: 摘要</p>
<p>2.note_bodies 详细信息<br />
note_id: note ID<br />
data: 记事内容，包含标题</p>
<p>– ==========下面是建表语句==========</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> Note <span style="color: #66cc66;">&#40;</span>creation_date INTEGER<span style="color: #66cc66;">,</span> title TEXT<span style="color: #66cc66;">,</span> summary TEXT<span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> note_bodies <span style="color: #66cc66;">&#40;</span>note_id INTEGER<span style="color: #66cc66;">,</span> <span style="color: #993333; font-weight: bold;">DATA</span><span style="color: #66cc66;">,</span> <span style="color: #993333; font-weight: bold;">UNIQUE</span><span style="color: #66cc66;">&#40;</span>note_id<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>– ==========下面是创建触发器==========</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TRIGGER</span> delete_note_bodies AFTER <span style="color: #993333; font-weight: bold;">DELETE</span> <span style="color: #993333; font-weight: bold;">ON</span> Note
BEGIN
<span style="color: #993333; font-weight: bold;">DELETE</span> <span style="color: #993333; font-weight: bold;">FROM</span> note_bodies <span style="color: #993333; font-weight: bold;">WHERE</span> note_id <span style="color: #66cc66;">=</span> OLD<span style="color: #66cc66;">.</span>ROWID;
END;</pre></div></div>

<p>三、sms.db 短信数据库</p>
<p>location: /private/var/root/Library/SMS/sms.db</p>
<p>1.message 短信表<br />
ROWID: 自增PK<br />
address: 对方手机号码(+86)<br />
date: 时间<br />
text: 内容<br />
flags: 标记. 2.收到的;3.自己发送的<br />
replace: (未知)<br />
svc_center: (未知)</p>
<p>– ==========下面是建表语句==========</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> message <span style="color: #66cc66;">&#40;</span>ROWID INTEGER <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> AUTOINCREMENT<span style="color: #66cc66;">,</span> address TEXT<span style="color: #66cc66;">,</span> date INTEGER<span style="color: #66cc66;">,</span> text TEXT<span style="color: #66cc66;">,</span> flags INTEGER<span style="color: #66cc66;">,</span> <span style="color: #993333; font-weight: bold;">REPLACE</span> INTEGER<span style="color: #66cc66;">,</span> svc_center TEXT<span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>CallData DB<br />
/System/Library/Frameworks/AppSupport.framework/calldata.db</p>
<p>TABLE	_SqliteDatabaseProperties<br />
TABLE	citycode<br />
code (INTEGER)<br />
Not sure what the significance of these entries are, I’m wondering if they have something to do with the geocoding of calls not made from your phonebook?<br />
(3888)<br />
city (TEXT)<br />
Not sure what the significance of these entries are, I’m wondering if they have something to do with the geocoding of calls not made from your phonebook?<br />
(RED CLOUD)<br />
INDEX	citycode_codeIndex<br />
citycode (code)<br />
TABLE	npa<br />
npa (TEXT)<br />
Numbering Plan Area, aka Area Code<br />
(415)<br />
location (TEXT)<br />
State/Province Assigned to the NPA<br />
(CA)<br />
country (TEXT)<br />
Country Assigned to the NPA, may be null if “location” is specific enough<br />
(USA)<br />
TABLE	npalocation<br />
npa (TEXT)<br />
Numbering Plan Area, aka Area Code<br />
(415)<br />
location (TEXT)<br />
Descriptive location info<br />
(San Francisco/North Bay Area)<br />
TABLE	npanxx<br />
npa (INTEGER)<br />
Numbering Plan Area, aka Area Code<br />
(907)<br />
nxx (INTEGER)<br />
Unknown<br />
(200)<br />
rate_center (INTEGER)<br />
Unknown<br />
(1)<br />
INDEX	npanxx_npanxxIndex<br />
npanxx (npa,nxx)<br />
CallHistory DB<br />
/private/var/root/Library/CallHistory/call_history.db</p>
<p>TABLE	_SqliteDatabaseProperties<br />
your values will certainly be different here…when you “restore” your iPhone from iTunes the counters all reset<br />
key (TEXT)	value (TEXT)<br />
call_history_limit	100<br />
timer_last	60<br />
timer_outgoing	900<br />
timer_incoming	540<br />
timer_all	1440<br />
timer_lifetime	1440<br />
timer_last_reset<br />
data_up_last	2.5439454125<br />
data_down_last	20.86328125<br />
data_up_all	719.9228515625<br />
data_down_all	8677.8427734375<br />
data_up_lifetime	719.9228515625<br />
data_down_lifetime	8677.8427734375<br />
data_last_reset<br />
_ClientVersion	3<br />
_UniqueIdentifier	GUID<br />
TABLE	call<br />
ROWID (INTEGER PRIMARY KEY AUTOINCREMENT)<br />
Auto-incrementing field/counter<br />
address (TEXT)<br />
International-formatted foreign address<br />
(18005551212)<br />
date (INTEGER)<br />
OSX-epoch based datetime, convertable via date -r<br />
(1187200801)<br />
duration (INTEGER)<br />
Length of call in seconds rounded to next minute, 0 = missed call<br />
(60)<br />
flags (INTEGER)<br />
Flags controlling the type of record<br />
5 &#8211; Outgoing call<br />
4 &#8211; Incoming call<br />
id (INTEGER)<br />
AddressBook ID for outgoing calls selected from AddressBook, otherwise -1<br />
(67)<br />
INDEX	date_index<br />
call (date)<br />
KeyChain DB<br />
/private/var/root/Library/Keychains/keychain-2.db<br />
Encrypted, I don’t know how to parse this yet</p>
<p>Voicemail DB<br />
/private/var/root/Library/Voicemail/voicemail.db</p>
<p>TABLE	_SqliteDatabaseProperties<br />
key (TEXT)	value (TEXT)<br />
VMVersion	4<br />
_UniqueIdentifier	GUID<br />
token	string containing various values, including your phone number<br />
uid_validity	1183172695<br />
mailboxusage	57<br />
TABLE	voicemail<br />
ROWID (INTEGER PRIMARY KEY AUTOINCREMENT)<br />
Auto-incrementing field/counter<br />
remote_uid (INTEGER)<br />
International-formatted foreign address<br />
(18005551212)<br />
date (INTEGER)<br />
OSX-epoch based datetime, convertable via date -r<br />
(1187200801)<br />
token (TEXT)<br />
Always reads “Complete” from what I can tell<br />
sender (TEXT)<br />
CallerID from the calling party leaving the voicemail message<br />
(8885551212)<br />
callback_num (TEXT)<br />
Callback number left by calling party, usually caller ID<br />
(8885551212)<br />
duration (INTEGER)<br />
Duration in seconds<br />
(5)<br />
expiration (INTEGER)<br />
OSX-epoch based datetime, convertable via date -r<br />
(1189431482)<br />
trashed_date (INTEGER)<br />
definitely based in seconds, haven’t figured out the epoch yet or why it isn’t the same as the other dates based on OSX’s epoch<br />
flags (INTEGER)<br />
Voicemail flags<br />
0 &#8211; Not downloaded yet<br />
1 &#8211; Partially downloaded<br />
2 &#8211; New, unlistened or only partially listened to<br />
3 &#8211; Listened completely<br />
11 &#8211; Pending delete, in “Deleted Items”<br />
15 &#8211; Deleted from iPhone, pending delete from voicemail hq<br />
INDEX	date_index<br />
voicemail (date)<br />
INDEX	remote_uid_index<br />
voicemail (remote_uid)<br />
Other, more complicated DBs, involved in syncing<br />
AddressBook DB<br />
/private/var/root/Library/AddressBook/AddressBook.sqlitedb<br />
AddressBook Images DB<br />
/private/var/root/Library/AddressBook/AddressBookImages.sqlitedb<br />
Maptiles DB<br />
/private/var/root/Library/Caches/MapTiles/MapTiles.sqlitedb<br />
Calendar DB<br />
/private/var/root/Library/Calendar/Calendar.sqlitedb</p>


<p>Related posts:<ol><li><a href='http://wuhongsheng.com/it/2010/03/mac-vpn-split-route/' rel='bookmark' title='Permanent Link: Mac下VPN设置多网关，让国内流量不走国外'>Mac下VPN设置多网关，让国内流量不走国外</a> <small>经常要翻墙，但又不想访问国内网站的时候也走国外的VPN。简单写了个脚本，让国内的流量直接走国内的网关，国外网站则走VPN。这样每次上网都可以直接拨上VPN，又不影响网站的访问。 使用方法：Mac下先设置所有流量走VPN，拨上VPN后，用root权限（sudo）执行下面的脚本。 Mac OS X 10.6.2测试通过 #!/bin/sh # SCRIPT WRITTEN...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://wuhongsheng.com/mac/2007/10/iphone-database-structure/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.228 seconds -->
