2 DELETE FROM sqlite_sequence
;
3 INSERT INTO "sqlite_sequence" VALUES('roles',2);
4 INSERT INTO "sqlite_sequence" VALUES('user',5);
6 id integer primary key autoincrement
,
9 INSERT INTO "roles" VALUES(0,'administrator');
10 INSERT INTO "roles" VALUES(1,'power user');
11 INSERT INTO "roles" VALUES(2,'user');
13 id integer primary key autoincrement
,
16 userrole
integer not null,
17 timeout
integer default 3600,
18 userview
text default 'week',
19 weekstart
integer default 0,
20 daystart
real default 8.00,
21 dayend
real default 17.00,
22 seckey
text default '',
23 pubkey
text default '',
24 constraint uid_index
unique (uid
)
25 constraint userrole_fk
foreign key (userrole
) references roles (id)
30 INSERT INTO "user" VALUES(1,'admin','d033e22ae348aeb5660fc2140aec35850c4da997',0,1200,'week',0,8.0,17.0,'','');
31 INSERT INTO "user" VALUES(2,'test','a94a8fe5ccb19ba61c4c0873d391e987982fbbd3',1,3600,'week',0,8.0,17.0,'da830961dc3af47fff6d1af3be3d66d6','\93¢yQ è\85§¸\90d\8e\9c±gaÙ8(
<\a\vk\9dÂy\86*\19:ð');
32 CREATE TABLE calendar (
33 id integer default -1,
36 color
text default 'navy',
37 config
text default '',
38 constraint calendar_pk
primary key (id, uid
),
39 constraint uid_fk
foreign key (uid
) references user (id)
44 CREATE TRIGGER compute_id
after insert on calendar
46 update calendar
set id = (select max(id) + 1 from calendar
) where id = -1;
48 CREATE TRIGGER genfkey2_insert_referencing
BEFORE INSERT ON "calendar" WHEN
49 new.
"uid" IS NOT NULL AND NOT EXISTS (SELECT 1 FROM "user" WHERE new.
"uid" == "id")
51 SELECT RAISE(ABORT, 'constraint failed');
53 CREATE TRIGGER genfkey2_update_referencing
BEFORE
54 UPDATE OF uid
ON "calendar" WHEN
55 new.
"uid" IS NOT NULL AND
56 NOT EXISTS (SELECT 1 FROM "user" WHERE new.
"uid" == "id")
58 SELECT RAISE(ABORT, 'constraint failed');
60 CREATE TRIGGER genfkey2_delete_referenced
BEFORE DELETE ON "user" WHEN
61 EXISTS (SELECT 1 FROM "calendar" WHERE old.
"id" == "uid")
63 DELETE FROM "calendar" WHERE "uid" = old.
"id";
65 CREATE TRIGGER genfkey2_update_referenced
AFTER
66 UPDATE OF id ON "user" WHEN
67 EXISTS (SELECT 1 FROM "calendar" WHERE old.
"id" == "uid")
69 UPDATE "calendar" SET "uid" = new.
"id" WHERE "uid" = old.
"id";
71 CREATE TRIGGER genfkey1_insert_referencing
BEFORE INSERT ON "user" WHEN
72 new.
"userrole" IS NOT NULL AND NOT EXISTS (SELECT 1 FROM "roles" WHERE new.
"userrole" == "id")
74 SELECT RAISE(ABORT, 'constraint failed');
76 CREATE TRIGGER genfkey1_update_referencing
BEFORE
77 UPDATE OF userrole
ON "user" WHEN
78 new.
"userrole" IS NOT NULL AND
79 NOT EXISTS (SELECT 1 FROM "roles" WHERE new.
"userrole" == "id")
81 SELECT RAISE(ABORT, 'constraint failed');
83 CREATE TRIGGER genfkey1_delete_referenced
BEFORE DELETE ON "roles" WHEN
84 EXISTS (SELECT 1 FROM "user" WHERE old.
"id" == "userrole")
86 SELECT RAISE(ABORT, 'constraint failed');
88 CREATE TRIGGER genfkey1_update_referenced
AFTER
89 UPDATE OF id ON "roles" WHEN
90 EXISTS (SELECT 1 FROM "user" WHERE old.
"id" == "userrole")
92 UPDATE "user" SET "userrole" = new.
"id" WHERE "userrole" = old.
"id";