-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmkm_db.sql
132 lines (93 loc) · 3.16 KB
/
mkm_db.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
--
-- PostgreSQL database dump
--
-- Dumped from database version 14.7 (Ubuntu 14.7-0ubuntu0.22.04.1)
-- Dumped by pg_dump version 14.7 (Ubuntu 14.7-0ubuntu0.22.04.1)
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;
--
-- Name: pgcrypto; Type: EXTENSION; Schema: -; Owner: -
--
CREATE EXTENSION IF NOT EXISTS pgcrypto WITH SCHEMA public;
--
-- Name: EXTENSION pgcrypto; Type: COMMENT; Schema: -; Owner:
--
COMMENT ON EXTENSION pgcrypto IS 'cryptographic functions';
--
-- Name: fn_trig_moment_id(); Type: FUNCTION; Schema: public; Owner: mkm_user
--
CREATE FUNCTION public.fn_trig_moment_id() RETURNS trigger
LANGUAGE plpgsql
AS $$
begin
new.id = (select count(*) + 1 from moments where username = new.username);
return new;
end;
$$;
ALTER FUNCTION public.fn_trig_moment_id() OWNER TO mkm_user;
SET default_tablespace = '';
SET default_table_access_method = heap;
--
-- Name: moments; Type: TABLE; Schema: public; Owner: mkm_user
--
CREATE TABLE public.moments (
username character varying(40) NOT NULL,
title character varying(100) NOT NULL,
description character varying(2000) NOT NULL,
moment_date date NOT NULL,
image_filename character varying(40),
image_caption character varying(100),
feelings character varying(20)[],
image_data bytea,
id bigint NOT NULL,
created_date timestamp with time zone DEFAULT now() NOT NULL,
last_modified_date timestamp with time zone DEFAULT now() NOT NULL
);
ALTER TABLE public.moments OWNER TO mkm_user;
--
-- Name: users; Type: TABLE; Schema: public; Owner: mkm_user
--
CREATE TABLE public.users (
username character varying(40) NOT NULL,
fullname character varying(100) NOT NULL,
birthdate date NOT NULL,
emailid character varying(100) NOT NULL,
password_hash character varying(100) NOT NULL,
account_creation_time timestamp with time zone NOT NULL
);
ALTER TABLE public.users OWNER TO mkm_user;
--
-- Name: moments moments_pkey; Type: CONSTRAINT; Schema: public; Owner: mkm_user
--
ALTER TABLE ONLY public.moments
ADD CONSTRAINT moments_pkey PRIMARY KEY (id, username);
--
-- Name: users unique_username; Type: CONSTRAINT; Schema: public; Owner: mkm_user
--
ALTER TABLE ONLY public.users
ADD CONSTRAINT unique_username UNIQUE (username);
--
-- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: mkm_user
--
ALTER TABLE ONLY public.users
ADD CONSTRAINT users_pkey PRIMARY KEY (emailid);
--
-- Name: moments trig_moment_id; Type: TRIGGER; Schema: public; Owner: mkm_user
--
CREATE TRIGGER trig_moment_id BEFORE INSERT ON public.moments FOR EACH ROW EXECUTE FUNCTION public.fn_trig_moment_id();
--
-- Name: moments moments_username_fkey; Type: FK CONSTRAINT; Schema: public; Owner: mkm_user
--
ALTER TABLE ONLY public.moments
ADD CONSTRAINT moments_username_fkey FOREIGN KEY (username) REFERENCES public.users(username);
--
-- PostgreSQL database dump complete
--