-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathComments.sql
27 lines (24 loc) · 834 Bytes
/
Comments.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
CREATE TABLE comments
(
comment_id UUID DEFAULT uuid_generate_v1(),
date_posted TIMESTAMP NOT NULL,
content VARCHAR(512) NOT NULL,
posted_by INT NOT NULL,
posted_on UUID,
PRIMARY KEY(comment_id),
CONSTRAINT fk_user
FOREIGN KEY(posted_by)
REFERENCES users(user_id)
ON DELETE CASCADE, /* When uploader is deleted, delete all their comments */
CONSTRAINT fk_video
FOREIGN KEY(posted_on)
REFERENCES videos(video_id)
ON DELETE CASCADE /* When video is deleted, delete all its comments */
);
CREATE OR REPLACE FUNCTION timestampcomment() RETURNS TRIGGER AS $timestampcomment$
BEGIN
new.date_posted := current_timestamp;
RETURN NEW;
END;
$timestampcomment$ LANGUAGE plpgsql;
CREATE TRIGGER timestamp_comment BEFORE INSERT ON comments FOR EACH ROW EXECUTE PROCEDURE timestampcomment();