BiblioteQ
biblioteq_sqlite_create_schema.h
1 /*
2 ** Copyright (c) 2006 - present, Alexis Megas.
3 ** All rights reserved.
4 **
5 ** Redistribution and use in source and binary forms, with or without
6 ** modification, are permitted provided that the following conditions
7 ** are met:
8 ** 1. Redistributions of source code must retain the above copyright
9 ** notice, this list of conditions and the following disclaimer.
10 ** 2. Redistributions in binary form must reproduce the above copyright
11 ** notice, this list of conditions and the following disclaimer in the
12 ** documentation and/or other materials provided with the distribution.
13 ** 3. The name of the author may not be used to endorse or promote products
14 ** derived from BiblioteQ without specific prior written permission.
15 **
16 ** BIBLIOTEQ IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17 ** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18 ** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19 ** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20 ** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21 ** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25 ** BIBLIOTEQ, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27 
28 /*
29 ** The sequence table is used for generating unique integers. Please see
30 ** biblioteq_misc_functions::getSqliteUniqueId().
31 */
32 
33 const char *sqlite_create_schema_text = "\
34 CREATE TABLE book \
35 ( \
36  accession_number TEXT, \
37  alternate_id_1 TEXT, \
38  author TEXT NOT NULL, \
39  back_cover BYTEA, \
40  binding_type VARCHAR(32) NOT NULL, \
41  book_read INTEGER DEFAULT 0, \
42  callnumber VARCHAR(64), \
43  category TEXT NOT NULL, \
44  condition TEXT, \
45  description TEXT NOT NULL, \
46  deweynumber VARCHAR(64), \
47  edition VARCHAR(8) NOT NULL, \
48  front_cover BYTEA, \
49  id VARCHAR(32) UNIQUE, \
50  isbn13 VARCHAR(32) UNIQUE, \
51  keyword TEXT, \
52  language VARCHAR(64) NOT NULL DEFAULT 'UNKNOWN', \
53  lccontrolnumber VARCHAR(64), \
54  location TEXT NOT NULL, \
55  marc_tags TEXT, \
56  monetary_units VARCHAR(64) NOT NULL DEFAULT 'UNKNOWN', \
57  multivolume_set_isbn VARCHAR(32), \
58  myoid BIGINT NOT NULL, \
59  originality TEXT, \
60  pdate VARCHAR(32) NOT NULL, \
61  place TEXT NOT NULL, \
62  price NUMERIC(10, 2) NOT NULL DEFAULT 0.00, \
63  publisher TEXT NOT NULL, \
64  quantity INTEGER NOT NULL DEFAULT 1, \
65  target_audience TEXT, \
66  title TEXT NOT NULL, \
67  type VARCHAR(16) NOT NULL DEFAULT 'Book', \
68  url TEXT, \
69  volume_number TEXT \
70 ); \
71  \
72 CREATE TABLE book_copy_info \
73 ( \
74  copy_number INTEGER NOT NULL DEFAULT 1, \
75  copyid VARCHAR(64) NOT NULL, \
76  myoid BIGINT NOT NULL, \
77  condition TEXT, \
78  item_oid BIGINT NOT NULL, \
79  originality TEXT, \
80  status TEXT, \
81  PRIMARY KEY(item_oid, copyid), \
82  FOREIGN KEY(item_oid) REFERENCES book(myoid) ON DELETE CASCADE \
83 ); \
84  \
85 CREATE TABLE book_files \
86 ( \
87  description TEXT, \
88  file BYTEA NOT NULL, \
89  file_digest TEXT NOT NULL, \
90  file_name TEXT NOT NULL, \
91  item_oid BIGINT NOT NULL, \
92  myoid BIGINT NOT NULL, \
93  FOREIGN KEY(item_oid) REFERENCES book(myoid) ON DELETE CASCADE, \
94  PRIMARY KEY(file_digest, item_oid) \
95 ); \
96  \
97 CREATE TABLE book_sequence \
98 ( \
99  value INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT \
100 ); \
101  \
102 CREATE TABLE cd \
103 ( \
104  accession_number TEXT, \
105  artist TEXT NOT NULL, \
106  back_cover BYTEA, \
107  category TEXT NOT NULL, \
108  cdaudio VARCHAR(32) NOT NULL DEFAULT 'Mono', \
109  cddiskcount INTEGER NOT NULL DEFAULT 1, \
110  cdformat VARCHAR(128) NOT NULL, \
111  cdrecording VARCHAR(32) NOT NULL DEFAULT 'Live', \
112  cdruntime VARCHAR(32) NOT NULL, \
113  description TEXT NOT NULL, \
114  front_cover BYTEA, \
115  id VARCHAR(32) NOT NULL PRIMARY KEY, \
116  keyword TEXT, \
117  language VARCHAR(64) NOT NULL DEFAULT 'UNKNOWN', \
118  location TEXT NOT NULL, \
119  monetary_units VARCHAR(64) NOT NULL DEFAULT 'UNKNOWN', \
120  myoid BIGINT NOT NULL, \
121  price NUMERIC(10, 2) NOT NULL DEFAULT 0.00, \
122  quantity INTEGER NOT NULL DEFAULT 1, \
123  rdate VARCHAR(32) NOT NULL, \
124  recording_label TEXT NOT NULL, \
125  title TEXT NOT NULL, \
126  type VARCHAR(16) NOT NULL DEFAULT 'CD' \
127 ); \
128  \
129 CREATE TABLE cd_copy_info \
130 ( \
131  copy_number INTEGER NOT NULL DEFAULT 1, \
132  copyid VARCHAR(64) NOT NULL, \
133  item_oid BIGINT NOT NULL, \
134  myoid BIGINT NOT NULL, \
135  status TEXT, \
136  PRIMARY KEY(item_oid, copyid), \
137  FOREIGN KEY(item_oid) REFERENCES cd(myoid) ON DELETE CASCADE \
138 ); \
139  \
140 CREATE TABLE cd_songs \
141 ( \
142  albumnum INTEGER NOT NULL DEFAULT 1, \
143  artist TEXT NOT NULL DEFAULT 'UNKNOWN', \
144  composer TEXT NOT NULL DEFAULT 'UNKNOWN', \
145  item_oid BIGINT NOT NULL, \
146  runtime VARCHAR(32) NOT NULL, \
147  songnum INTEGER NOT NULL DEFAULT 1, \
148  songtitle VARCHAR(256) NOT NULL, \
149  PRIMARY KEY(item_oid, albumnum, songnum), \
150  FOREIGN KEY(item_oid) REFERENCES cd(myoid) ON DELETE CASCADE \
151 ); \
152  \
153 CREATE TABLE dvd \
154 ( \
155  accession_number TEXT, \
156  back_cover BYTEA, \
157  category TEXT NOT NULL, \
158  description TEXT NOT NULL, \
159  dvdactor TEXT NOT NULL, \
160  dvdaspectratio VARCHAR(64) NOT NULL, \
161  dvddirector TEXT NOT NULL, \
162  dvddiskcount INTEGER NOT NULL DEFAULT 1, \
163  dvdformat TEXT NOT NULL, \
164  dvdrating VARCHAR(64) NOT NULL, \
165  dvdregion VARCHAR(64) NOT NULL, \
166  dvdruntime VARCHAR(32) NOT NULL, \
167  front_cover BYTEA, \
168  id VARCHAR(32) NOT NULL PRIMARY KEY, \
169  keyword TEXT, \
170  language VARCHAR(64) NOT NULL DEFAULT 'UNKNOWN', \
171  location TEXT NOT NULL, \
172  monetary_units VARCHAR(64) NOT NULL DEFAULT 'UNKNOWN', \
173  myoid BIGINT NOT NULL, \
174  price NUMERIC(10, 2) NOT NULL DEFAULT 0.00, \
175  quantity INTEGER NOT NULL DEFAULT 1, \
176  rdate VARCHAR(32) NOT NULL, \
177  studio TEXT NOT NULL, \
178  title TEXT NOT NULL, \
179  type VARCHAR(16) NOT NULL DEFAULT 'DVD' \
180 ); \
181  \
182 CREATE TABLE dvd_copy_info \
183 ( \
184  copy_number INTEGER NOT NULL DEFAULT 1, \
185  copyid VARCHAR(64) NOT NULL, \
186  item_oid BIGINT NOT NULL, \
187  myoid BIGINT NOT NULL, \
188  status TEXT, \
189  PRIMARY KEY(item_oid, copyid), \
190  FOREIGN KEY(item_oid) REFERENCES dvd(myoid) ON DELETE CASCADE \
191 ); \
192  \
193 CREATE TABLE grey_literature \
194 ( \
195  author TEXT NOT NULL, \
196  client TEXT, \
197  document_code_a TEXT NOT NULL, \
198  document_code_b TEXT NOT NULL, \
199  document_date TEXT NOT NULL, \
200  document_id TEXT NOT NULL PRIMARY KEY, \
201  document_status TEXT, \
202  document_title TEXT NOT NULL, \
203  document_type TEXT NOT NULL, \
204  front_cover BYTEA, \
205  job_number TEXT NOT NULL, \
206  location TEXT, \
207  myoid BIGINT UNIQUE, \
208  notes TEXT, \
209  quantity INTEGER NOT NULL DEFAULT 1, \
210  type VARCHAR(16) NOT NULL DEFAULT 'Grey Literature' \
211 ); \
212  \
213 CREATE TABLE grey_literature_files \
214 ( \
215  description TEXT, \
216  file BYTEA NOT NULL, \
217  file_digest TEXT NOT NULL, \
218  file_name TEXT NOT NULL, \
219  item_oid BIGINT NOT NULL, \
220  myoid BIGINT NOT NULL, \
221  FOREIGN KEY(item_oid) REFERENCES grey_literature(myoid) ON \
222  DELETE CASCADE, \
223  PRIMARY KEY(file_digest, item_oid) \
224 ); \
225  \
226 CREATE TABLE journal \
227 ( \
228  accession_number TEXT, \
229  back_cover BYTEA, \
230  callnumber VARCHAR(64), \
231  category TEXT NOT NULL, \
232  description TEXT NOT NULL, \
233  deweynumber VARCHAR(64), \
234  front_cover BYTEA, \
235  id VARCHAR(32), \
236  issueno INTEGER NOT NULL DEFAULT 0, \
237  issuevolume INTEGER NOT NULL DEFAULT 0, \
238  keyword TEXT, \
239  language VARCHAR(64) NOT NULL DEFAULT 'UNKNOWN', \
240  lccontrolnumber VARCHAR(64), \
241  location TEXT NOT NULL, \
242  marc_tags TEXT, \
243  monetary_units VARCHAR(64) NOT NULL DEFAULT 'UNKNOWN', \
244  myoid BIGINT NOT NULL, \
245  pdate VARCHAR(32) NOT NULL, \
246  place TEXT NOT NULL, \
247  price NUMERIC(10, 2) NOT NULL DEFAULT 0.00, \
248  publisher TEXT NOT NULL, \
249  quantity INTEGER NOT NULL DEFAULT 1, \
250  title TEXT NOT NULL, \
251  type VARCHAR(16) NOT NULL DEFAULT 'Journal', \
252  UNIQUE(id, issueno, issuevolume) \
253 ); \
254  \
255 CREATE TABLE journal_copy_info \
256 ( \
257  copy_number INTEGER NOT NULL DEFAULT 1, \
258  copyid VARCHAR(64) NOT NULL, \
259  item_oid BIGINT NOT NULL, \
260  myoid BIGINT NOT NULL, \
261  status TEXT, \
262  PRIMARY KEY(item_oid, copyid), \
263  FOREIGN KEY(item_oid) REFERENCES journal(myoid) ON DELETE CASCADE \
264 ); \
265  \
266 CREATE TABLE journal_files \
267 ( \
268  description TEXT, \
269  file BYTEA NOT NULL, \
270  file_digest TEXT NOT NULL, \
271  file_name TEXT NOT NULL, \
272  item_oid BIGINT NOT NULL, \
273  myoid BIGINT NOT NULL, \
274  FOREIGN KEY(item_oid) REFERENCES journal(myoid) ON DELETE CASCADE, \
275  PRIMARY KEY(file_digest, item_oid) \
276 ); \
277  \
278 CREATE TABLE magazine \
279 ( \
280  accession_number TEXT, \
281  back_cover BYTEA, \
282  callnumber VARCHAR(64), \
283  category TEXT NOT NULL, \
284  description TEXT NOT NULL, \
285  deweynumber VARCHAR(64), \
286  front_cover BYTEA, \
287  id VARCHAR(32), \
288  issueno INTEGER NOT NULL DEFAULT 0, \
289  issuevolume INTEGER NOT NULL DEFAULT 0, \
290  keyword TEXT, \
291  language VARCHAR(64) NOT NULL DEFAULT 'UNKNOWN', \
292  lccontrolnumber VARCHAR(64), \
293  location TEXT NOT NULL, \
294  marc_tags TEXT, \
295  monetary_units VARCHAR(64) NOT NULL DEFAULT 'UNKNOWN', \
296  myoid BIGINT NOT NULL, \
297  pdate VARCHAR(32) NOT NULL, \
298  place TEXT NOT NULL, \
299  price NUMERIC(10, 2) NOT NULL DEFAULT 0.00, \
300  publisher TEXT NOT NULL, \
301  quantity INTEGER NOT NULL DEFAULT 1, \
302  title TEXT NOT NULL, \
303  type VARCHAR(16) NOT NULL DEFAULT 'Magazine', \
304  UNIQUE(id, issuevolume, issueno) \
305 ); \
306  \
307 CREATE TABLE magazine_copy_info \
308 ( \
309  copy_number INTEGER NOT NULL DEFAULT 1, \
310  copyid VARCHAR(64) NOT NULL, \
311  item_oid BIGINT NOT NULL, \
312  myoid BIGINT NOT NULL, \
313  status TEXT, \
314  PRIMARY KEY(item_oid, copyid), \
315  FOREIGN KEY(item_oid) REFERENCES magazine(myoid) ON DELETE CASCADE \
316 ); \
317  \
318 CREATE TABLE magazine_files \
319 ( \
320  description TEXT, \
321  file BYTEA NOT NULL, \
322  file_digest TEXT NOT NULL, \
323  file_name TEXT NOT NULL, \
324  item_oid BIGINT NOT NULL, \
325  myoid BIGINT NOT NULL, \
326  FOREIGN KEY(item_oid) REFERENCES magazine(myoid) ON DELETE CASCADE, \
327  PRIMARY KEY(file_digest, item_oid) \
328 ); \
329  \
330 CREATE TABLE photograph_collection \
331 ( \
332  about TEXT, \
333  accession_number TEXT, \
334  id TEXT PRIMARY KEY NOT NULL, \
335  image BYTEA, \
336  image_scaled BYTEA, \
337  location TEXT NOT NULL, \
338  myoid BIGINT NOT NULL, \
339  notes TEXT, \
340  title TEXT NOT NULL, \
341  type VARCHAR(32) NOT NULL DEFAULT 'Photograph Collection' \
342 ); \
343  \
344 CREATE TABLE photograph \
345 ( \
346  accession_number TEXT, \
347  callnumber VARCHAR(64), \
348  collection_oid BIGINT NOT NULL, \
349  copyright TEXT NOT NULL, \
350  creators TEXT NOT NULL, \
351  format TEXT, \
352  id TEXT NOT NULL, \
353  image BYTEA, \
354  image_scaled BYTEA, \
355  medium TEXT NOT NULL, \
356  myoid BIGINT NOT NULL, \
357  notes TEXT, \
358  other_number TEXT, \
359  pdate VARCHAR(32) NOT NULL, \
360  quantity INTEGER NOT NULL DEFAULT 1, \
361  reproduction_number TEXT NOT NULL, \
362  subjects TEXT, \
363  title TEXT NOT NULL, \
364  PRIMARY KEY(id, collection_oid), \
365  FOREIGN KEY(collection_oid) REFERENCES \
366  photograph_collection(myoid) ON \
367  DELETE CASCADE \
368 ); \
369  \
370 CREATE TABLE videogame \
371 ( \
372  accession_number TEXT, \
373  back_cover BYTEA, \
374  description TEXT NOT NULL, \
375  developer TEXT NOT NULL, \
376  front_cover BYTEA, \
377  genre TEXT NOT NULL, \
378  id VARCHAR(32) NOT NULL PRIMARY KEY, \
379  keyword TEXT, \
380  language VARCHAR(64) NOT NULL DEFAULT 'UNKNOWN', \
381  location TEXT NOT NULL, \
382  monetary_units VARCHAR(64) NOT NULL DEFAULT 'UNKNOWN', \
383  myoid BIGINT NOT NULL, \
384  place TEXT NOT NULL, \
385  price NUMERIC(10, 2) NOT NULL DEFAULT 0.00, \
386  publisher TEXT NOT NULL, \
387  quantity INTEGER NOT NULL DEFAULT 1, \
388  rdate VARCHAR(32) NOT NULL, \
389  title TEXT NOT NULL, \
390  type VARCHAR(16) NOT NULL DEFAULT 'Video Game', \
391  vgmode VARCHAR(16) NOT NULL DEFAULT 'Multiplayer', \
392  vgplatform VARCHAR(64) NOT NULL, \
393  vgrating VARCHAR(64) NOT NULL \
394 ); \
395  \
396 CREATE TABLE videogame_copy_info \
397 ( \
398  copy_number INTEGER NOT NULL DEFAULT 1, \
399  copyid VARCHAR(64) NOT NULL, \
400  item_oid BIGINT NOT NULL, \
401  myoid BIGINT NOT NULL, \
402  status TEXT, \
403  PRIMARY KEY(item_oid, copyid), \
404  FOREIGN KEY(item_oid) REFERENCES videogame(myoid) ON \
405  DELETE CASCADE \
406 ); \
407  \
408 CREATE TRIGGER book_purge_trigger AFTER DELETE ON book \
409 FOR EACH row \
410 BEGIN \
411  DELETE FROM book_copy_info WHERE item_oid = old.myoid; \
412  DELETE FROM item_borrower WHERE item_oid = old.myoid; \
413  DELETE FROM member_history WHERE item_oid = old.myoid AND \
414  type = old.type; \
415 END; \
416  \
417 CREATE TRIGGER cd_purge_trigger AFTER DELETE ON cd \
418 FOR EACH row \
419 BEGIN \
420  DELETE FROM cd_copy_info WHERE item_oid = old.myoid; \
421  DELETE FROM cd_songs WHERE item_oid = old.myoid; \
422  DELETE FROM item_borrower WHERE item_oid = old.myoid; \
423  DELETE FROM member_history WHERE item_oid = old.myoid AND \
424  type = old.type; \
425 END; \
426  \
427 CREATE TRIGGER dvd_purge_trigger AFTER DELETE ON dvd \
428 FOR EACH row \
429 BEGIN \
430  DELETE FROM dvd_copy_info WHERE item_oid = old.myoid; \
431  DELETE FROM item_borrower WHERE item_oid = old.myoid; \
432  DELETE FROM member_history WHERE item_oid = old.myoid AND \
433  type = old.type; \
434 END; \
435  \
436 CREATE TRIGGER grey_literature_purge_trigger AFTER DELETE ON \
437  grey_literature \
438 FOR EACH row \
439 BEGIN \
440  DELETE FROM item_borrower WHERE item_oid = old.myoid; \
441  DELETE FROM member_history WHERE item_oid = old.myoid AND \
442  type = old.type; \
443 END; \
444  \
445 CREATE TRIGGER journal_purge_trigger AFTER DELETE ON journal \
446 FOR EACH row \
447 BEGIN \
448  DELETE FROM item_borrower WHERE item_oid = old.myoid; \
449  DELETE FROM journal_copy_info WHERE item_oid = old.myoid; \
450  DELETE FROM member_history WHERE item_oid = old.myoid AND \
451  type = old.type; \
452 END; \
453  \
454 CREATE TRIGGER magazine_purge_trigger AFTER DELETE ON magazine \
455 FOR EACH row \
456 BEGIN \
457  DELETE FROM item_borrower WHERE item_oid = old.myoid; \
458  DELETE FROM magazine_copy_info WHERE item_oid = old.myoid; \
459  DELETE FROM member_history WHERE item_oid = old.myoid AND \
460  type = old.type; \
461 END; \
462  \
463 CREATE TRIGGER videogame_purge_trigger AFTER DELETE ON videogame \
464 FOR EACH row \
465 BEGIN \
466  DELETE FROM item_borrower WHERE item_oid = old.myoid; \
467  DELETE FROM member_history WHERE item_oid = old.myoid AND \
468  type = old.type; \
469  DELETE FROM videogame_copy_info WHERE item_oid = old.myoid; \
470 END; \
471  \
472 CREATE TABLE item_borrower \
473 ( \
474  copy_number INTEGER NOT NULL DEFAULT 1, \
475  copyid VARCHAR(64) NOT NULL, \
476  duedate VARCHAR(32) NOT NULL, \
477  item_oid BIGINT NOT NULL, \
478  memberid VARCHAR(16) NOT NULL, \
479  myoid INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, \
480  reserved_by VARCHAR(128) NOT NULL, \
481  reserved_date VARCHAR(32) NOT NULL, \
482  type VARCHAR(16) NOT NULL, \
483  FOREIGN KEY(memberid) REFERENCES member ON DELETE RESTRICT \
484 ); \
485  \
486 CREATE TABLE member \
487 ( \
488  city VARCHAR(256) NOT NULL, \
489  comments TEXT, \
490  dob VARCHAR(32) NOT NULL, \
491  email VARCHAR(128), \
492  expiration_date VARCHAR(32) NOT NULL, \
493  first_name VARCHAR(128) NOT NULL, \
494  general_registration_number TEXT, \
495  last_name VARCHAR(128) NOT NULL, \
496  maximum_reserved_books INTEGER NOT NULL DEFAULT 0, \
497  memberclass TEXT, \
498  memberid VARCHAR(16) NOT NULL PRIMARY KEY DEFAULT 1, \
499  membership_fees NUMERIC(10, 2) NOT NULL DEFAULT 0.00, \
500  membersince VARCHAR(32) NOT NULL, \
501  middle_init VARCHAR(1), \
502  overdue_fees NUMERIC(10, 2) NOT NULL DEFAULT 0.00, \
503  sex VARCHAR(32) NOT NULL DEFAULT 'Private', \
504  state_abbr VARCHAR(16) NOT NULL DEFAULT 'N/A', \
505  street VARCHAR(256) NOT NULL, \
506  telephone_num VARCHAR(32), \
507  zip VARCHAR(16) NOT NULL DEFAULT 'N/A' \
508 ); \
509  \
510 CREATE TRIGGER item_borrower_trigger AFTER DELETE ON member \
511 FOR EACH row \
512 BEGIN \
513  DELETE FROM item_borrower WHERE memberid = old.memberid; \
514 END; \
515  \
516 CREATE TABLE member_history \
517 ( \
518  memberid VARCHAR(16) NOT NULL, \
519  item_oid BIGINT NOT NULL, \
520  copyid VARCHAR(64) NOT NULL, \
521  reserved_date VARCHAR(32) NOT NULL, \
522  duedate VARCHAR(32) NOT NULL, \
523  returned_date VARCHAR(32) NOT NULL, \
524  myoid INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, \
525  reserved_by VARCHAR(128) NOT NULL, \
526  type VARCHAR(16) NOT NULL, \
527  FOREIGN KEY(memberid) REFERENCES member(memberid) ON DELETE CASCADE \
528 ); \
529  \
530 CREATE TRIGGER member_history_trigger AFTER DELETE ON member \
531 FOR EACH row \
532 BEGIN \
533  DELETE FROM member_history WHERE memberid = old.memberid; \
534 END; \
535  \
536 CREATE TABLE book_binding_types \
537 ( \
538  binding_type TEXT NOT NULL PRIMARY KEY \
539 ); \
540  \
541 CREATE TABLE book_conditions \
542 ( \
543  condition TEXT NOT NULL PRIMARY KEY \
544 ); \
545  \
546 CREATE TABLE book_originality \
547 ( \
548  originality TEXT NOT NULL PRIMARY KEY \
549 ); \
550  \
551 CREATE TABLE book_target_audiences \
552 ( \
553  target_audience TEXT NOT NULL PRIMARY KEY \
554 ); \
555  \
556 CREATE TABLE cd_formats \
557 ( \
558  cd_format TEXT NOT NULL PRIMARY KEY \
559 ); \
560  \
561 CREATE TABLE dvd_aspect_ratios \
562 ( \
563  dvd_aspect_ratio TEXT NOT NULL PRIMARY KEY \
564 ); \
565  \
566 CREATE TABLE dvd_ratings \
567 ( \
568  dvd_rating TEXT NOT NULL PRIMARY KEY \
569 ); \
570  \
571 CREATE TABLE dvd_regions \
572 ( \
573  dvd_region TEXT NOT NULL PRIMARY KEY \
574 ); \
575  \
576 CREATE TABLE grey_literature_types \
577 ( \
578  document_type TEXT NOT NULL PRIMARY KEY \
579 ); \
580  \
581 CREATE TABLE languages \
582 ( \
583  language TEXT NOT NULL PRIMARY KEY \
584 ); \
585  \
586 CREATE TABLE locations \
587 ( \
588  location TEXT NOT NULL, \
589  type VARCHAR(32) NOT NULL, \
590  PRIMARY KEY(location, type) \
591 ); \
592  \
593 CREATE TABLE minimum_days \
594 ( \
595  days INTEGER NOT NULL, \
596  type VARCHAR(16) NOT NULL PRIMARY KEY \
597 ); \
598  \
599 CREATE TABLE monetary_units \
600 ( \
601  monetary_unit TEXT NOT NULL PRIMARY KEY \
602 ); \
603  \
604 CREATE TABLE sequence \
605 ( \
606  value INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT \
607 ); \
608  \
609 CREATE TABLE videogame_platforms \
610 ( \
611  videogame_platform TEXT NOT NULL PRIMARY KEY \
612 ); \
613  \
614 CREATE TABLE videogame_ratings \
615 ( \
616  videogame_rating TEXT NOT NULL PRIMARY KEY \
617 ); \
618 ";