1
- CREATE TABLE employee (
1
+ CREATE TABLE public . employee (
2
2
emp_no SERIAL NOT NULL ,
3
3
birth_date DATE NOT NULL ,
4
4
first_name TEXT NOT NULL ,
@@ -8,16 +8,16 @@ CREATE TABLE employee (
8
8
PRIMARY KEY (emp_no)
9
9
);
10
10
11
- CREATE INDEX idx_employee_hire_date ON employee (hire_date);
11
+ CREATE INDEX public . idx_employee_hire_date ON public . employee (hire_date);
12
12
13
- CREATE TABLE department (
13
+ CREATE TABLE public . department (
14
14
dept_no TEXT NOT NULL ,
15
15
dept_name TEXT NOT NULL ,
16
16
PRIMARY KEY (dept_no),
17
17
UNIQUE (dept_name)
18
18
);
19
19
20
- CREATE TABLE dept_manager (
20
+ CREATE TABLE public . dept_manager (
21
21
emp_no INT NOT NULL ,
22
22
dept_no TEXT NOT NULL ,
23
23
from_date DATE NOT NULL ,
@@ -27,7 +27,7 @@ CREATE TABLE dept_manager (
27
27
PRIMARY KEY (emp_no, dept_no)
28
28
);
29
29
30
- CREATE TABLE dept_emp (
30
+ CREATE TABLE public . dept_emp (
31
31
emp_no INT NOT NULL ,
32
32
dept_no TEXT NOT NULL ,
33
33
from_date DATE NOT NULL ,
@@ -37,7 +37,7 @@ CREATE TABLE dept_emp (
37
37
PRIMARY KEY (emp_no, dept_no)
38
38
);
39
39
40
- CREATE TABLE title (
40
+ CREATE TABLE public . title (
41
41
emp_no INT NOT NULL ,
42
42
title TEXT NOT NULL ,
43
43
from_date DATE NOT NULL ,
@@ -46,7 +46,7 @@ CREATE TABLE title (
46
46
PRIMARY KEY (emp_no, title, from_date)
47
47
);
48
48
49
- CREATE TABLE salary (
49
+ CREATE TABLE public . salary (
50
50
emp_no INT NOT NULL ,
51
51
amount INT NOT NULL ,
52
52
from_date DATE NOT NULL ,
@@ -55,32 +55,32 @@ CREATE TABLE salary (
55
55
PRIMARY KEY (emp_no, from_date)
56
56
);
57
57
58
- CREATE INDEX idx_salary_amount ON salary (amount);
58
+ CREATE INDEX public . idx_salary_amount ON public . salary (amount);
59
59
60
- CREATE TABLE audit (
60
+ CREATE TABLE public . audit (
61
61
id SERIAL PRIMARY KEY ,
62
62
operation TEXT NOT NULL ,
63
63
query TEXT ,
64
64
user_name TEXT NOT NULL ,
65
65
changed_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
66
66
);
67
67
68
- CREATE INDEX idx_audit_operation ON audit (operation);
69
- CREATE INDEX idx_audit_username ON audit (user_name);
70
- CREATE INDEX idx_audit_changed_at ON audit (changed_at);
68
+ CREATE INDEX public . idx_audit_operation ON public . audit (operation);
69
+ CREATE INDEX public . idx_audit_username ON public . audit (user_name);
70
+ CREATE INDEX public . idx_audit_changed_at ON public . audit (changed_at);
71
71
72
- CREATE OR REPLACE FUNCTION log_dml_operations () RETURNS TRIGGER AS $$
72
+ CREATE OR REPLACE FUNCTION public . log_dml_operations() RETURNS TRIGGER AS $$
73
73
BEGIN
74
74
IF (TG_OP = ' INSERT' ) THEN
75
- INSERT INTO audit (operation, query, user_name)
75
+ INSERT INTO public . audit (operation, query, user_name)
76
76
VALUES (' INSERT' , current_query(), current_user );
77
77
RETURN NEW;
78
78
ELSIF (TG_OP = ' UPDATE' ) THEN
79
- INSERT INTO audit (operation, query, user_name)
79
+ INSERT INTO public . audit (operation, query, user_name)
80
80
VALUES (' UPDATE' , current_query(), current_user );
81
81
RETURN NEW;
82
82
ELSIF (TG_OP = ' DELETE' ) THEN
83
- INSERT INTO audit (operation, query, user_name)
83
+ INSERT INTO public . audit (operation, query, user_name)
84
84
VALUES (' DELETE' , current_query(), current_user );
85
85
RETURN OLD;
86
86
END IF;
89
89
$$ LANGUAGE plpgsql;
90
90
91
91
-- only log update and delete, otherwise, it will cause too much change.
92
- CREATE TRIGGER salary_log_trigger
93
- AFTER UPDATE OR DELETE ON salary
92
+ CREATE TRIGGER public . salary_log_trigger
93
+ AFTER UPDATE OR DELETE ON public . salary
94
94
FOR EACH ROW
95
- EXECUTE FUNCTION log_dml_operations();
95
+ EXECUTE FUNCTION public . log_dml_operations ();
96
96
97
- CREATE OR REPLACE VIEW dept_emp_latest_date AS
97
+ CREATE OR REPLACE VIEW public . dept_emp_latest_date AS
98
98
SELECT
99
99
emp_no,
100
100
MAX (
101
101
from_date) AS from_date,
102
102
MAX (
103
103
to_date) AS to_date
104
104
FROM
105
- dept_emp
105
+ public . dept_emp
106
106
GROUP BY
107
107
emp_no;
108
108
109
109
-- shows only the current department for each employee
110
- CREATE OR REPLACE VIEW current_dept_emp AS
110
+ CREATE OR REPLACE VIEW public . current_dept_emp AS
111
111
SELECT
112
112
l .emp_no ,
113
113
dept_no,
114
114
l .from_date ,
115
115
l .to_date
116
116
FROM
117
- dept_emp d
118
- INNER JOIN dept_emp_latest_date l ON d .emp_no = l .emp_no
117
+ public . dept_emp d
118
+ INNER JOIN public . dept_emp_latest_date l ON d .emp_no = l .emp_no
119
119
AND d .from_date = l .from_date
120
120
AND l .to_date = d .to_date ;
0 commit comments