Add new test relationship - a track can have a relates single_cd
[dbsrgits/DBIx-Class.git] / t / lib / sqlite.sql
1 -- 
2 -- Created by SQL::Translator::Producer::SQLite
3 -- Created on Sun Nov 16 10:43:11 2008
4 -- 
5 BEGIN TRANSACTION;
6
7
8 --
9 -- Table: artist
10 --
11 CREATE TABLE artist (
12   artistid INTEGER PRIMARY KEY NOT NULL,
13   name varchar(100),
14   rank integer NOT NULL DEFAULT '13',
15   charfield char(10)
16 );
17
18
19 --
20 -- Table: artist_undirected_map
21 --
22 CREATE TABLE artist_undirected_map (
23   id1 integer NOT NULL,
24   id2 integer NOT NULL,
25   PRIMARY KEY (id1, id2)
26 );
27
28 CREATE INDEX artist_undirected_map_idx_id1_ ON artist_undirected_map (id1);
29 CREATE INDEX artist_undirected_map_idx_id2_ ON artist_undirected_map (id2);
30
31 --
32 -- Table: bookmark
33 --
34 CREATE TABLE bookmark (
35   id INTEGER PRIMARY KEY NOT NULL,
36   link integer NOT NULL
37 );
38
39 CREATE INDEX bookmark_idx_link_bookmark ON bookmark (link);
40
41 --
42 -- Table: books
43 --
44 CREATE TABLE books (
45   id INTEGER PRIMARY KEY NOT NULL,
46   source varchar(100) NOT NULL,
47   owner integer NOT NULL,
48   title varchar(100) NOT NULL,
49   price integer
50 );
51
52
53 --
54 -- Table: cd
55 --
56 CREATE TABLE cd (
57   cdid INTEGER PRIMARY KEY NOT NULL,
58   artist integer NOT NULL,
59   title varchar(100) NOT NULL,
60   year varchar(100) NOT NULL,
61   genreid integer,
62   single_track integer
63 );
64
65 CREATE INDEX cd_idx_artist_cd ON cd (artist);
66 CREATE INDEX cd_idx_genreid_cd ON cd (genreid);
67 CREATE INDEX cd_idx_single_track_cd ON cd (single_track);
68 CREATE UNIQUE INDEX cd_artist_title_cd ON cd (artist, title);
69
70 --
71 -- Table: cd_to_producer
72 --
73 CREATE TABLE cd_to_producer (
74   cd integer NOT NULL,
75   producer integer NOT NULL,
76   PRIMARY KEY (cd, producer)
77 );
78
79 CREATE INDEX cd_to_producer_idx_cd_cd_to_pr ON cd_to_producer (cd);
80 CREATE INDEX cd_to_producer_idx_producer_cd ON cd_to_producer (producer);
81
82 --
83 -- Table: collection
84 --
85 CREATE TABLE collection (
86   collectionid INTEGER PRIMARY KEY NOT NULL,
87   name varchar(100) NOT NULL
88 );
89
90
91 --
92 -- Table: collection_object
93 --
94 CREATE TABLE collection_object (
95   collection integer NOT NULL,
96   object integer NOT NULL,
97   PRIMARY KEY (collection, object)
98 );
99
100 CREATE INDEX collection_object_idx_collection_collection_obj ON collection_object (collection);
101 CREATE INDEX collection_object_idx_object_c ON collection_object (object);
102
103 --
104 -- Table: employee
105 --
106 CREATE TABLE employee (
107   employee_id INTEGER PRIMARY KEY NOT NULL,
108   position integer NOT NULL,
109   group_id integer,
110   group_id_2 integer,
111   name varchar(100)
112 );
113
114
115 --
116 -- Table: event
117 --
118 CREATE TABLE event (
119   id INTEGER PRIMARY KEY NOT NULL,
120   starts_at datetime NOT NULL,
121   created_on timestamp NOT NULL,
122   varchar_date varchar(20),
123   varchar_datetime varchar(20),
124   skip_inflation datetime
125 );
126
127
128 --
129 -- Table: file_columns
130 --
131 CREATE TABLE file_columns (
132   id INTEGER PRIMARY KEY NOT NULL,
133   file varchar(255) NOT NULL
134 );
135
136
137 --
138 -- Table: forceforeign
139 --
140 CREATE TABLE forceforeign (
141   artist INTEGER PRIMARY KEY NOT NULL,
142   cd integer NOT NULL
143 );
144
145 CREATE INDEX forceforeign_idx_artist_forcef ON forceforeign (artist);
146
147 --
148 -- Table: fourkeys
149 --
150 CREATE TABLE fourkeys (
151   foo integer NOT NULL,
152   bar integer NOT NULL,
153   hello integer NOT NULL,
154   goodbye integer NOT NULL,
155   sensors character NOT NULL,
156   PRIMARY KEY (foo, bar, hello, goodbye)
157 );
158
159
160 --
161 -- Table: fourkeys_to_twokeys
162 --
163 CREATE TABLE fourkeys_to_twokeys (
164   f_foo integer NOT NULL,
165   f_bar integer NOT NULL,
166   f_hello integer NOT NULL,
167   f_goodbye integer NOT NULL,
168   t_artist integer NOT NULL,
169   t_cd integer NOT NULL,
170   autopilot character NOT NULL,
171   PRIMARY KEY (f_foo, f_bar, f_hello, f_goodbye, t_artist, t_cd)
172 );
173
174 CREATE INDEX fourkeys_to_twokeys_idx_f_foo_f_bar_f_hello_f_goodbye_ ON fourkeys_to_twokeys (f_foo, f_bar, f_hello, f_goodbye);
175 CREATE INDEX fourkeys_to_twokeys_idx_t_artist_t_cd_fourkeys_to ON fourkeys_to_twokeys (t_artist, t_cd);
176
177 --
178 -- Table: genre
179 --
180 CREATE TABLE genre (
181   genreid INTEGER PRIMARY KEY NOT NULL,
182   name varchar(100) NOT NULL
183 );
184
185 CREATE UNIQUE INDEX genre_name_genre ON genre (name);
186
187 --
188 -- Table: liner_notes
189 --
190 CREATE TABLE liner_notes (
191   liner_id INTEGER PRIMARY KEY NOT NULL,
192   notes varchar(100) NOT NULL
193 );
194
195 CREATE INDEX liner_notes_idx_liner_id_liner ON liner_notes (liner_id);
196
197 --
198 -- Table: link
199 --
200 CREATE TABLE link (
201   id INTEGER PRIMARY KEY NOT NULL,
202   url varchar(100),
203   title varchar(100)
204 );
205
206
207 --
208 -- Table: noprimarykey
209 --
210 CREATE TABLE noprimarykey (
211   foo integer NOT NULL,
212   bar integer NOT NULL,
213   baz integer NOT NULL
214 );
215
216 CREATE UNIQUE INDEX foo_bar_noprimarykey ON noprimarykey (foo, bar);
217
218 --
219 -- Table: onekey
220 --
221 CREATE TABLE onekey (
222   id INTEGER PRIMARY KEY NOT NULL,
223   artist integer NOT NULL,
224   cd integer NOT NULL
225 );
226
227
228 --
229 -- Table: owners
230 --
231 CREATE TABLE owners (
232   ownerid INTEGER PRIMARY KEY NOT NULL,
233   name varchar(100) NOT NULL
234 );
235
236
237 --
238 -- Table: producer
239 --
240 CREATE TABLE producer (
241   producerid INTEGER PRIMARY KEY NOT NULL,
242   name varchar(100) NOT NULL
243 );
244
245 CREATE UNIQUE INDEX prod_name_producer ON producer (name);
246
247 --
248 -- Table: self_ref
249 --
250 CREATE TABLE self_ref (
251   id INTEGER PRIMARY KEY NOT NULL,
252   name varchar(100) NOT NULL
253 );
254
255
256 --
257 -- Table: self_ref_alias
258 --
259 CREATE TABLE self_ref_alias (
260   self_ref integer NOT NULL,
261   alias integer NOT NULL,
262   PRIMARY KEY (self_ref, alias)
263 );
264
265 CREATE INDEX self_ref_alias_idx_alias_self_ ON self_ref_alias (alias);
266 CREATE INDEX self_ref_alias_idx_self_ref_se ON self_ref_alias (self_ref);
267
268 --
269 -- Table: sequence_test
270 --
271 CREATE TABLE sequence_test (
272   pkid1 integer NOT NULL,
273   pkid2 integer NOT NULL,
274   nonpkid integer NOT NULL,
275   name varchar(100),
276   PRIMARY KEY (pkid1, pkid2)
277 );
278
279
280 --
281 -- Table: serialized
282 --
283 CREATE TABLE serialized (
284   id INTEGER PRIMARY KEY NOT NULL,
285   serialized text NOT NULL
286 );
287
288
289 --
290 -- Table: tags
291 --
292 CREATE TABLE tags (
293   tagid INTEGER PRIMARY KEY NOT NULL,
294   cd integer NOT NULL,
295   tag varchar(100) NOT NULL
296 );
297
298 CREATE INDEX tags_idx_cd_tags ON tags (cd);
299
300 --
301 -- Table: track
302 --
303 CREATE TABLE track (
304   trackid INTEGER PRIMARY KEY NOT NULL,
305   cd integer NOT NULL,
306   position integer NOT NULL,
307   title varchar(100) NOT NULL,
308   last_updated_on datetime
309 );
310
311 CREATE INDEX track_idx_cd_track ON track (cd);
312 CREATE UNIQUE INDEX track_cd_position_track ON track (cd, position);
313 CREATE UNIQUE INDEX track_cd_title_track ON track (cd, title);
314
315 --
316 -- Table: treelike
317 --
318 CREATE TABLE treelike (
319   id INTEGER PRIMARY KEY NOT NULL,
320   parent integer,
321   name varchar(100) NOT NULL
322 );
323
324 CREATE INDEX treelike_idx_parent_treelike ON treelike (parent);
325
326 --
327 -- Table: twokeytreelike
328 --
329 CREATE TABLE twokeytreelike (
330   id1 integer NOT NULL,
331   id2 integer NOT NULL,
332   parent1 integer NOT NULL,
333   parent2 integer NOT NULL,
334   name varchar(100) NOT NULL,
335   PRIMARY KEY (id1, id2)
336 );
337
338 CREATE INDEX twokeytreelike_idx_parent1_parent2_twokeytre ON twokeytreelike (parent1, parent2);
339 CREATE UNIQUE INDEX tktlnameunique_twokeytreelike ON twokeytreelike (name);
340
341 --
342 -- Table: twokeys
343 --
344 CREATE TABLE twokeys (
345   artist integer NOT NULL,
346   cd integer NOT NULL,
347   PRIMARY KEY (artist, cd)
348 );
349
350 CREATE INDEX twokeys_idx_artist_twokeys ON twokeys (artist);
351
352 --
353 -- Table: typed_object
354 --
355 CREATE TABLE typed_object (
356   objectid INTEGER PRIMARY KEY NOT NULL,
357   type varchar(100) NOT NULL,
358   value varchar(100) NOT NULL
359 );
360
361
362 COMMIT;