summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--many_to_many_example.postgres16
-rw-r--r--manytomany_sqlite.sql16
2 files changed, 32 insertions, 0 deletions
diff --git a/many_to_many_example.postgres b/many_to_many_example.postgres
new file mode 100644
index 0000000..6a4ef56
--- /dev/null
+++ b/many_to_many_example.postgres
@@ -0,0 +1,16 @@
+CREATE TABLE cds(
+id serial PRIMARY KEY -- implicit primary key constraint,
+title text NOT NULL
+);
+
+CREATE TABLE artists(
+id serial PRIMARY KEY,
+name text NOT NULL
+);
+
+CREATE TABLE cds_and_artists(
+cds_id integer REFERENCES cds (id) ON UPDATE CASCADE ON DELETE CASCADE,
+artists_id integer REFERENCES artisys (id) ON UPDATE CASCADE,
+CONSTRAINT cds_and_artists_pkey PRIMARY KEY (cds_id, artists_id)
+);
+
diff --git a/manytomany_sqlite.sql b/manytomany_sqlite.sql
new file mode 100644
index 0000000..2546b5f
--- /dev/null
+++ b/manytomany_sqlite.sql
@@ -0,0 +1,16 @@
+CREATE TABLE cds(
+ id INTEGER PRIMARY KEY NOT NULL,
+ title TEXT NOT NULL
+);
+CREATE TABLE artists(
+ id INTEGER PRIMARY KEY NOT NULL,
+ name TEXT NOT NULL
+);
+CREATE TABLE cds_and_artists(
+ cds_id INTEGER,
+ artists_id INTEGER,
+ FOREIGN KEY(cds_id) REFERENCES cds(id) ON DELETE CASCADE,
+ FOREIGN KEY(artists_id) REFERENCES artists(id) ON DELETE CASCADE
+);
+CREATE INDEX cdsindex ON cds_and_artists(cds_id);
+CREATE INDEX artistsindex ON cds_and_artists(artists_id);