android 通信录数据表

 

Pragma foreign_keys=false;android

Begin Transaction;windows

CREATE TABLE android_metadata (locale TEXT);google

Insert  Into [android_metadata] ([locale]) Values("en_US");spa

CREATE TABLE calls (    --通话记录server

_id INTEGER PRIMARY KEY AUTOINCREMENT,token

number TEXT,图片

date INTEGER,ip

duration INTEGER,it

type INTEGER,io

new INTEGER,

name TEXT,

numbertype INTEGER,

numberlabel TEXT

);

Insert  Into [calls] ([_id],[number],[date],[duration],[type],[new],[name],[numbertype],[numberlabel]) Values("1","15555212225","1103588015","7","2","1",NULL,"0",NULL);

Insert  Into [calls] ([_id],[number],[date],[duration],[type],[new],[name],[numbertype],[numberlabel]) Values("2","12222","1103678243","506","2","1",NULL,"0",NULL);

Insert  Into [calls] ([_id],[number],[date],[duration],[type],[new],[name],[numbertype],[numberlabel]) Values("3","15555214556","1104838023","8","2","1",NULL,"0",NULL);

Insert  Into [calls] ([_id],[number],[date],[duration],[type],[new],[name],[numbertype],[numberlabel]) Values("4","147","1104881010","69","2","1","Erhh","2",NULL);

Insert  Into [calls] ([_id],[number],[date],[duration],[type],[new],[name],[numbertype],[numberlabel]) Values("5","122555","1246080846","1","2","1","Ety","2",NULL);

Insert  Into [calls] ([_id],[number],[date],[duration],[type],[new],[name],[numbertype],[numberlabel]) Values("6","5554","1265327046","0","1","1",NULL,"0",NULL);

Insert  Into [calls] ([_id],[number],[date],[duration],[type],[new],[name],[numbertype],[numberlabel]) Values("7","075512345678","1265370030","0","3","1","Erhh","1",NULL);

Insert  Into [calls] ([_id],[number],[date],[duration],[type],[new],[name],[numbertype],[numberlabel]) Values("8","13873870772","1265394655","50","1","1","Erhh","3",NULL);

CREATE TABLE groups (     --组

_id INTEGER PRIMARY KEY AUTOINCREMENT,

_sync_account TEXT,

_sync_id TEXT,

_sync_time TEXT,

_sync_version TEXT,

_sync_local_id INTEGER,

_sync_dirty INTEGER NOT NULL DEFAULT 0,

_sync_mark INTEGER,

name TEXT NOT NULL,

notes TEXT,

should_sync INTEGER NOT NULL DEFAULT 0,

system_id TEXT,

UNIQUE(name,system_id,_sync_account)

);

Insert  Into [groups] ([_id],[_sync_account],[_sync_id],[_sync_time],[_sync_version],[_sync_local_id],[_sync_dirty],[_sync_mark],[name],[notes],[should_sync],[system_id]) Values("1",NULL,NULL,NULL,NULL,NULL,"0",NULL,"Contacts",NULL,"0","Contacts");

CREATE TABLE settings (_id INTEGER PRIMARY KEY,_sync_account TEXT,key STRING NOT NULL,value STRING );

CREATE TABLE voice_dialer_timestamp (_id INTEGER PRIMARY KEY,timestamp INTEGER);

Insert  Into [voice_dialer_timestamp] ([_id],[timestamp]) Values("1","1311230526");

CREATE TABLE _deleted_groups (_sync_version TEXT,_sync_id TEXT,_sync_account TEXT,_sync_mark INTEGER);

CREATE TABLE _deleted_people (_sync_version TEXT,_sync_id TEXT,_sync_account TEXT,_sync_mark INTEGER);

CREATE TABLE _sync_state (_id INTEGER PRIMARY KEY,_sync_account TEXT,data TEXT,UNIQUE(_sync_account));

CREATE TABLE _sync_state_metadata (version INTEGER);

Insert  Into [_sync_state_metadata] ([version]) Values("2");

CREATE TABLE contact_methods (

_id INTEGER PRIMARY KEY AUTOINCREMENT,

person INTEGER REFERENCES people(_id),

kind INTEGER NOT NULL,

data TEXT,aux_data TEXT,

type INTEGER NOT NULL,

label TEXT,

isprimary INTEGER NOT NULL DEFAULT 0

);

Insert  Into [contact_methods] ([_id],[person],[kind],[data],[aux_data],[type],[label],[isprimary]) Values("1","1","1","work@email.cm ",NULL,"2",NULL,"1");

Insert  Into [contact_methods] ([_id],[person],[kind],[data],[aux_data],[type],[label],[isprimary]) Values("2","1","1","other1@email.com",NULL,"3",NULL,"0");

Insert  Into [contact_methods] ([_id],[person],[kind],[data],[aux_data],[type],[label],[isprimary]) Values("3","1","1","home@email.com",NULL,"1",NULL,"0");

Insert  Into [contact_methods] ([_id],[person],[kind],[data],[aux_data],[type],[label],[isprimary]) Values("4","1","1","other@email.com",NULL,"3",NULL,"0");

Insert  Into [contact_methods] ([_id],[person],[kind],[data],[aux_data],[type],[label],[isprimary]) Values("5","1","3","google chat address","pre:5","3",NULL,"1");

Insert  Into [contact_methods] ([_id],[person],[kind],[data],[aux_data],[type],[label],[isprimary]) Values("6","1","3","aim chat address","pre:0","3",NULL,"0");

Insert  Into [contact_methods] ([_id],[person],[kind],[data],[aux_data],[type],[label],[isprimary]) Values("7","1","3","windows chart address","pre:1","3",NULL,"0");

Insert  Into [contact_methods] ([_id],[person],[kind],[data],[aux_data],[type],[label],[isprimary]) Values("8","1","3","yahoo chart address","pre:2","3",NULL,"0");

Insert  Into [contact_methods] ([_id],[person],[kind],[data],[aux_data],[type],[label],[isprimary]) Values("9","1","3","jabber chart address","pre:7","3",NULL,"0");

Insert  Into [contact_methods] ([_id],[person],[kind],[data],[aux_data],[type],[label],[isprimary]) Values("10","1","3","jabber2 chart address","pre:7","3",NULL,"0");

Insert  Into [contact_methods] ([_id],[person],[kind],[data],[aux_data],[type],[label],[isprimary]) Values("11","1","3","jabber3 chart address","pre:7","3",NULL,"0");

Insert  Into [contact_methods] ([_id],[person],[kind],[data],[aux_data],[type],[label],[isprimary]) Values("12","1","2","Home Postal",NULL,"1",NULL,"1");

Insert  Into [contact_methods] ([_id],[person],[kind],[data],[aux_data],[type],[label],[isprimary]) Values("13","1","2","Work Postal",NULL,"2",NULL,"0");

Insert  Into [contact_methods] ([_id],[person],[kind],[data],[aux_data],[type],[label],[isprimary]) Values("14","1","2","Other Postal",NULL,"3",NULL,"0");

Insert  Into [contact_methods] ([_id],[person],[kind],[data],[aux_data],[type],[label],[isprimary]) Values("15","1","2","Other Postal",NULL,"3",NULL,"0");

CREATE TABLE extensions (_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT NOT NULL,value TEXT NOT NULL,person INTEGER REFERENCES people(_id),UNIQUE(person, name));

CREATE TABLE groupmembership (

_id INTEGER PRIMARY KEY,

person INTEGER REFERENCES people(_id),

group_id INTEGER REFERENCES groups(_id),

group_sync_account STRING,

group_sync_id STRING

);

Insert  Into [groupmembership] ([_id],[person],[group_id],[group_sync_account],[group_sync_id]) Values("1","1","1",NULL,NULL);

Insert  Into [groupmembership] ([_id],[person],[group_id],[group_sync_account],[group_sync_id]) Values("2","2","1",NULL,NULL);

CREATE TABLE organizations (

_id INTEGER PRIMARY KEY AUTOINCREMENT,

company TEXT,

title TEXT,

isprimary INTEGER NOT NULL DEFAULT 0,

type INTEGER NOT NULL,label TEXT,

person INTEGER REFERENCES people(_id)

);

Insert  Into [organizations] ([_id],[company],[title],[isprimary],[type],[label],[person]) Values("1","Organizations Work Compny",NULL,"1","1",NULL,"1");

Insert  Into [organizations] ([_id],[company],[title],[isprimary],[type],[label],[person]) Values("2","Organizations Other Company",NULL,"0","2",NULL,"1");

CREATE TABLE people (

_id INTEGER PRIMARY KEY AUTOINCREMENT,

_sync_account TEXT,

_sync_id TEXT,

_sync_time TEXT,

_sync_version TEXT,

_sync_local_id INTEGER,

_sync_dirty INTEGER NOT NULL DEFAULT 0,

_sync_mark INTEGER,

name TEXT COLLATE LOCALIZED,

notes TEXT COLLATE LOCALIZED,

times_contacted INTEGER NOT NULL DEFAULT 0,

last_time_contacted INTEGER,

starred INTEGER NOT NULL DEFAULT 0,

primary_phone INTEGER REFERENCES phones(_id),

primary_organization INTEGER REFERENCES organizations(_id),

primary_email INTEGER REFERENCES contact_methods(_id),

photo_version TEXT,

custom_ringtone TEXT,

send_to_voicemail INTEGER,

phonetic_name TEXT COLLATE LOCALIZED);

Insert  Into [people] ([_id],[_sync_account],[_sync_id],[_sync_time],[_sync_version],[_sync_local_id],[_sync_dirty],[_sync_mark],[name],[notes],[times_contacted],[last_time_contacted],[starred],[primary_phone],[primary_organization],[primary_email],[photo_version],[custom_ringtone],[send_to_voicemail],[phonetic_name]) Values("1",NULL,NULL,NULL,NULL,NULL,"1",NULL,"Erhh","Notes2","2","1265455570","0","3","1","1",NULL,NULL,"0",NULL);

Insert  Into [people] ([_id],[_sync_account],[_sync_id],[_sync_time],[_sync_version],[_sync_local_id],[_sync_dirty],[_sync_mark],[name],[notes],[times_contacted],[last_time_contacted],[starred],[primary_phone],[primary_organization],[primary_email],[photo_version],[custom_ringtone],[send_to_voicemail],[phonetic_name]) Values("2",NULL,NULL,NULL,NULL,NULL,"1",NULL,"Ety",NULL,"0",NULL,"0","2",NULL,NULL,NULL,NULL,"0",NULL);

CREATE TABLE peopleLookup (

token TEXT,

source INTEGER REFERENCES people(_id),

token_index INTEGER);

Insert  Into [peopleLookup] ([token],[source],[token_index]) Values("314b3737","1","0");

Insert  Into [peopleLookup] ([token],[source],[token_index]) Values("314f59","2","0");

CREATE TABLE peopleLookupWithPhoneticName (

token TEXT,

source INTEGER REFERENCES people(_id),

token_index INTEGER);

Insert  Into [peopleLookupWithPhoneticName] ([token],[source],[token_index]) Values("314b3737","1","0");

Insert  Into [peopleLookupWithPhoneticName] ([token],[source],[token_index]) Values("314f59","2","0");

CREATE TABLE phones (

_id INTEGER PRIMARY KEY AUTOINCREMENT,

person INTEGER REFERENCES people(_id),

type INTEGER NOT NULL,

number TEXT,

number_key TEXT,

label TEXT,

isprimary INTEGER NOT NULL DEFAULT 0);

Insert  Into [phones] ([_id],[person],[type],[number],[number_key],[label],[isprimary]) 

         Values("2","2","2","122555","555221",NULL,"1");

Insert  Into [phones] ([_id],[person],[type],[number],[number_key],[label],[isprimary]) 

         Values("3","1","1","075-512-345678","876543215570",NULL,"1");

Insert  Into [phones] ([_id],[person],[type],[number],[number_key],[label],[isprimary]) Values("4","1","3","1-387-387-0772","27707837831",NULL,"0");

Insert  Into [phones] ([_id],[person],[type],[number],[number_key],[label],[isprimary]) Values("5","1","2","1-397-387-0772","27707837931",NULL,"0");

Insert  Into [phones] ([_id],[person],[type],[number],[number_key],[label],[isprimary]) Values("6","1","7","1-401-234-56","654321041",NULL,"0");

Insert  Into [phones] ([_id],[person],[type],[number],[number_key],[label],[isprimary]) Values("7","1","7","1-411-234-5678","87654321141",NULL,"0");

Insert  Into [phones] ([_id],[person],[type],[number],[number_key],[label],[isprimary]) Values("8","1","7","1-421-234-567","7654321241",NULL,"0");

CREATE TABLE photos       --图片照片

(

_id INTEGER PRIMARY KEY AUTOINCREMENT,

exists_on_server INTEGER NOT NULL DEFAULT 0,

person INTEGER REFERENCES people(_id), 

local_version TEXT,

data BLOB,sync_error TEXT,

_sync_account TEXT,

_sync_id TEXT,_sync_time TEXT,

_sync_version TEXT,

_sync_local_id INTEGER,

_sync_dirty INTEGER NOT NULL DEFAULT 0,

_sync_mark INTEGER,UNIQUE(person) 

);

Insert  Into [photos] ([_id],[exists_on_server],[person],[local_version],[data],[sync_error],[_sync_account],[_sync_id],[_sync_time],[_sync_version],[_sync_local_id],[_sync_dirty],[_sync_mark]) 

           Values("1","0","1",NULL,X'F53F3F00104A46494600010100000100010000F53F004300080606070605080707070909080A0C140D0C0B0B0C1912130F141D1A1F1E1D1A1C1C20242E2720222C231C1C2837292C30313434341F27393D38323C2E333432F53F0043010909090C0B0C180D0D1832211C213232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232F53F0011080060006003012200021101031101F53F001F0000010501010101010100000000000000000102030405060708090A0BF53F003F0002010303020403050504040000017D0102030004110512213141061351610722711432BC3F2342F715526F243362723F0A161718191A25262728292A3435363738393A434445464748494A535455565758595A636465666768696A737475767778797A0E97729B00439FDEBAE5A6160624399779DD9A4CA892E3C9BF2D7ACFB4811D9F6EB1BC8C3F3F001F0100030101010101010101010000000000000102030405060708090A0BF53F003F00020102040403040705040400010277000102031104052131061241510761711322323F1442BDF7092333523F62723F1624343F3F18191A262728292A35363738393A434445464748494A535455565758595A636465666768696A737475767778797A11603691C3427CD9C47245972B119200AF2DC55044ECA4C969D5DDCFB4811D5DDD8A2CEBF53F000C03010002110311003F0033493FA150173F30075C3FFECE0C063F3D69081C122972187068765D46C3411B3F243C11AF3F6534292E4C2E0E1F5A4DA04D3102115C41727A42FB28781A727D076011B1158714F63F3F68663F3F51B50416253F514D018968963C533FF44372DE4243562C3F5305316744ACDE482B67302C925857234DF63F53F375013E093F391C7AAE3F05CF673F3F425F1B3F60243F154B3F096D2952F7A0533F3F1F3F76ECF50005173F72554378D45C2C413F287B9A224C26AE263C113F3F979F594B1B583BB6F00F9F3F785BAB730DEF5253AC0083753764084D6E30F1156B3F0064571F79013F34E20F7A3E3F6A0E243459676D1F7D4D7551DF7BF449885637CB9177CE1B545585393F9A3FB5504B533D6EBC2A3F20553FBD56AA3F1B947A56F500964B1E3F0536DC7935451C854655533F3D766567C03FEF71F500C66F3F3F2F03734CF50091947B3878DC2F8B232B7C467DB83F5B67733FA80C76766B416699085038F13E1D2CDB4347853C3FC10A3A3323551F997E3F5506463D69E4F5003F74824C3F293F1E5F133F6E45184E53271C3D539D4673781E3F40F500908804B3787A0535CA81E07C1C4F671B35A640FC3F143F3E64780E4209723BCC02395F7A10737D1EDC7EBAA11F1B3F35533F5667075E542D52D8EAF53F696E3C0F788F6B7B403F3F3F84F5003F3F1965E0626B0A151D0F5B0DC02829396A79853A641075F3F50086653F9DC73F4F3F49F50009557A3FBCC668943F35063F7F0E783A5D347D16000E80B9439A693004AD19684F29603F3FD43D174FB5B710A3FA7C3B30723F5F6A601678383FBA3F3F083F5A5FED3FDE1C3A74733A5464A33FAC2E3F003F3F3F023F326D4E27C4181EF500B93F3F786BC57E607D6B3FDE395B5F3F430F18ED062E4EC8573F000C353F5C476CCA5F0B3F0069AEEC543F3F2E3F6E0818260A3F6E612D3A687869731044253D4939D77B56C18D0C1CCF3F7A4AA2945F15513E58096A683F254CD8E73F7A1997E86D3F5D3E131715083F4B3FDE3B31A0A94D3F447C4E5BDE5C94C0EC22430F7F3A7D82423F2B3F7F27C5690F0179787A511FF7CEC869B5290D3A3FAF23C11FA3210E3C163F16957BAD5371573C1F0249A86FF0FC3373AF2DA83FF5420C715D1422A634AC7D716ADA48703F0E49E2EE14C9B60B035524B878BF0143767761E6160A6200263E0569AC47334D19B8DF4645600F3526703E3F293CBA46354E54993F43CB7DEE8A3F3F3C63603F6D96113F74393FF500ADF554CA3F993F149B3F937A1F450A9FAA7A5ED0476564405CD059D0ED7D6E4F7A3F005B6B5C0C087B532D62313F4822232E3437314871B5483FA10917455E335D322B6A5A1F3B392B3F671D69733F40D75255242F30633F4AD9DEBD403F7A1864BF979AC3335C854A497291493F3FF53F',NULL,NULL,NULL,NULL,NULL,NULL,"1",NULL);

Insert  Into [photos] ([_id],[exists_on_server],[person],[local_version],[data],[sync_error],[_sync_account],[_sync_id],[_sync_time],[_sync_version],[_sync_local_id],[_sync_dirty],[_sync_mark]) 

           Values("2","0","2",NULL,X'F53F3F00104A46494600010100000100010000F53F004300080606070605080707070909080A0C140D0C0B0B0C1912130F141D1A1F1E1D1A1C1C20242E2720222C231C1C2837292C30313434341F27393D38323C2E333432F53F0043010909090C0B0C180D0D1832211C213232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232F53F0011080060006003012200021101031101F53F001F0000010501010101010100000000000000000102030405060708090A0BF53F003F0002010303020403050504040000017D0102030004110512213141061351610722711432BC3F2342F715526F243362723F0A161718191A25262728292A3435363738393A434445464748494A535455565758595A636465666768696A737475767778797A0E97729B00439FDEBAE5A6160624399779DD9A4CA892E3C9BF2D7ACFB4811D9F6EB1BC8C3F3F001F0100030101010101010101010000000000000102030405060708090A0BF53F003F00020102040403040705040400010277000102031104052131061241510761711322323F1442BDF7092333523F62723F1624343F3F18191A262728292A35363738393A434445464748494A535455565758595A636465666768696A737475767778797A11603691C3427CD9C47245972B119200AF2DC55044ECA4C969D5DDCFB4811D5DDD8A2CEBF53F000C03010002110311003F00C5288B310A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28650A28653FF53F',NULL,NULL,NULL,NULL,NULL,NULL,"1",NULL);

CREATE TRIGGER contact_cleanup DELETE ON people BEGIN DELETE FROM peopleLookup WHERE source = old._id;DELETE FROM peopleLookupWithPhoneticName WHERE source = old._id;DELETE FROM phones WHERE person = old._id;DELETE FROM contact_methods WHERE person = old._id;DELETE FROM organizations WHERE person = old._id;DELETE FROM groupmembership WHERE person = old._id;DELETE FROM extensions WHERE person = old._id;END;

CREATE TRIGGER contact_methods_delete DELETE ON contact_methods BEGIN UPDATE people SET _sync_dirty=1 WHERE people._id=old.person;END;

CREATE TRIGGER contact_methods_insert INSERT ON contact_methods BEGIN UPDATE people SET _sync_dirty=1 WHERE people._id=new.person;END;

CREATE TRIGGER contact_methods_INSERT_typeAndLabel AFTER INSERT ON contact_methods   WHEN (NEW.type != 0 AND NEW.label IS NOT NULL) OR         (NEW.type = 0 AND NEW.label IS NULL)   BEGIN      SELECT RAISE (ABORT, 'exactly one of type or label must be set');    END;

CREATE TRIGGER contact_methods_update UPDATE ON contact_methods BEGIN UPDATE people SET _sync_dirty=1 WHERE people._id=old.person;END;

CREATE TRIGGER contact_methods_UPDATE_typeAndLabel AFTER UPDATE ON contact_methods   WHEN (NEW.type != 0 AND NEW.label IS NOT NULL) OR         (NEW.type = 0 AND NEW.label IS NULL)   BEGIN      SELECT RAISE (ABORT, 'exactly one of type or label must be set');    END;

CREATE TRIGGER extensions_delete DELETE ON extensions BEGIN UPDATE people SET _sync_dirty=1 WHERE people._id=old.person;END;

CREATE TRIGGER extensions_insert INSERT ON extensions BEGIN UPDATE people SET _sync_dirty=1 WHERE people._id=new.person; END;

CREATE TRIGGER extensions_update AFTER UPDATE ON extensions BEGIN UPDATE people SET _sync_dirty=1 WHERE people._id=old.person; END;

CREATE TRIGGER groupmembership_delete DELETE ON groupmembership BEGIN UPDATE people SET _sync_dirty=1 WHERE people._id=old.person;END;

CREATE TRIGGER groupmembership_insert INSERT ON groupmembership BEGIN UPDATE people SET _sync_dirty=1 WHERE people._id=new.person; END;

CREATE TRIGGER groupmembership_update AFTER UPDATE ON groupmembership BEGIN UPDATE people SET _sync_dirty=1 WHERE people._id=old.person; END;

CREATE TRIGGER groups_cleanup DELETE ON groups BEGIN UPDATE groupmembership SET group_id = null WHERE group_id = old._id;END;

CREATE TRIGGER groups_to_deleted DELETE ON groups WHEN old._sync_id is not null BEGIN INSERT INTO _deleted_groups (_sync_id, _sync_account, _sync_version) VALUES (old._sync_id, old._sync_account, old._sync_version);END;

CREATE TRIGGER organizations_delete DELETE ON organizations BEGIN UPDATE people SET _sync_dirty=1 WHERE people._id=old.person;END;

CREATE TRIGGER organizations_insert INSERT ON organizations BEGIN UPDATE people SET _sync_dirty=1 WHERE people._id=new.person; END;

CREATE TRIGGER organizations_INSERT_typeAndLabel AFTER INSERT ON organizations   WHEN (NEW.type != 0 AND NEW.label IS NOT NULL) OR         (NEW.type = 0 AND NEW.label IS NULL)   BEGIN      SELECT RAISE (ABORT, 'exactly one of type or label must be set');    END;

CREATE TRIGGER organizations_update AFTER UPDATE ON organizations BEGIN UPDATE people SET _sync_dirty=1 WHERE people._id=old.person; END;

CREATE TRIGGER organizations_UPDATE_typeAndLabel AFTER UPDATE ON organizations   WHEN (NEW.type != 0 AND NEW.label IS NOT NULL) OR         (NEW.type = 0 AND NEW.label IS NULL)   BEGIN      SELECT RAISE (ABORT, 'exactly one of type or label must be set');    END;

CREATE TRIGGER peopleDeleteAndPhotos DELETE ON people  BEGIN   DELETE FROM photos WHERE person=OLD._id; END;

CREATE TRIGGER peopleLookupWithPhoneticName_insert AFTER INSERT ON people BEGIN SELECT _TOKENIZE('peopleLookupWithPhoneticName', new._id, GET_NORMALIZED_STRING(CASE WHEN (new.phonetic_name IS NOT NULL AND new.phonetic_name != '') THEN new.phonetic_name ELSE (CASE WHEN (new.name is NOT NULL AND new.name != '') THEN new.name ELSE '' END) END), ' ', 1);END;

CREATE TRIGGER peopleLookupWithPhoneticName_update UPDATE OF name, phonetic_name ON people BEGIN DELETE FROM peopleLookupWithPhoneticName WHERE source = new._id;SELECT _TOKENIZE('peopleLookupWithPhoneticName', new._id, GET_NORMALIZED_STRING(CASE WHEN (new.phonetic_name IS NOT NULL AND new.phonetic_name != '') THEN new.phonetic_name ELSE (CASE WHEN (new.name is NOT NULL AND new.name != '') THEN new.name ELSE '' END) END), ' ', 1);END;

CREATE TRIGGER peopleLookup_insert AFTER INSERT ON people BEGIN SELECT _TOKENIZE('peopleLookup', new._id, new.name, ' ', 1);END;

CREATE TRIGGER peopleLookup_update UPDATE OF name ON people BEGIN DELETE FROM peopleLookup WHERE source = new._id;SELECT _TOKENIZE('peopleLookup', new._id, new.name, ' ', 1);END;

CREATE TRIGGER people_timesContacted UPDATE OF last_time_contacted ON people BEGIN UPDATE people SET times_contacted = (new.times_contacted + 1) WHERE _id = new._id;END;

CREATE TRIGGER phones_delete DELETE ON phones BEGIN UPDATE people SET _sync_dirty=1 WHERE people._id=old.person;END;

CREATE TRIGGER phones_insert INSERT ON phones BEGIN UPDATE people SET _sync_dirty=1 WHERE people._id=new.person;END;

CREATE TRIGGER phones_INSERT_typeAndLabel AFTER INSERT ON phones   WHEN (NEW.type != 0 AND NEW.label IS NOT NULL) OR         (NEW.type = 0 AND NEW.label IS NULL)   BEGIN      SELECT RAISE (ABORT, 'exactly one of type or label must be set');    END;

CREATE TRIGGER phones_update UPDATE ON phones BEGIN UPDATE people SET _sync_dirty=1 WHERE people._id=old.person;END;

CREATE TRIGGER phones_UPDATE_typeAndLabel AFTER UPDATE ON phones   WHEN (NEW.type != 0 AND NEW.label IS NOT NULL) OR         (NEW.type = 0 AND NEW.label IS NULL)   BEGIN      SELECT RAISE (ABORT, 'exactly one of type or label must be set');    END;

CREATE TRIGGER timestamp_trigger1 AFTER UPDATE ON phones BEGIN UPDATE voice_dialer_timestamp SET timestamp=strftime('%s', 'now') WHERE _id=1;END;

CREATE TRIGGER timestamp_trigger2 AFTER UPDATE OF name ON people BEGIN UPDATE voice_dialer_timestamp SET timestamp=strftime('%s', 'now') WHERE _id=1;END;

CREATE INDEX contactMethodsPeopleIndex ON contact_methods (person);

CREATE INDEX extensionsIndex1 ON extensions (person, name);

CREATE INDEX groupmembershipIndex1 ON groupmembership (person, group_id);

CREATE INDEX groupmembershipIndex2 ON groupmembership (group_id, person);

CREATE INDEX groupmembershipIndex3 ON groupmembership (group_sync_account, group_sync_id);

CREATE INDEX groupsSyncDirtyIndex ON groups (_sync_dirty);

CREATE INDEX organizationsIndex1 ON organizations (person);

CREATE INDEX peopleLookupIndex ON peopleLookup (token,source);

CREATE INDEX peopleLookupWithPhoneticNameIndex ON peopleLookupWithPhoneticName (token,source);

CREATE INDEX peopleNameIndex ON people (name);

CREATE INDEX peopleSyncDirtyIndex ON people (_sync_dirty);

CREATE INDEX peopleSyncIdIndex ON people (_sync_id);

CREATE INDEX phonesIndex1 ON phones (person);

CREATE INDEX phonesIndex2 ON phones (number_key);

CREATE INDEX photoPersonIndex ON photos (person);

CREATE INDEX photosSyncDirtyIndex ON photos (_sync_dirty);

Commit Transaction;

Pragma foreign_keys=true;