Skip to content
Snippets Groups Projects
Commit 77737db3 authored by Peter Gerwinski's avatar Peter Gerwinski
Browse files

Beispiele 14.12.2023

parent ec14aafb
No related branches found
No related tags found
No related merge requests found
Showing
with 1458 additions and 1 deletion
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
$db->exec ('INSERT INTO students (first_name, family_name) VALUES ( ' $db->exec ('INSERT INTO students (first_name, family_name) VALUES ( '
.$_POST["first_name"].', '.$_POST["familty_name"] .$_POST["first_name"].', '.$_POST["familty_name"]
.' );'); .' );');
$stmt = $db->query ('SELECT * FROM student;'); $stmt = $db->query ('SELECT * FROM students;');
echo '<table><tr>'; echo '<table><tr>';
while ($row = $stmt->fetch()) while ($row = $stmt->fetch())
{ {
......
#!/bin/bash
echo "Hello, world!"
#!/bin/bash
echo Content-Type: text/plain
echo
echo "Hello, world!"
#!/bin/bash
echo Content-Type: text/plain
echo
echo "QUERY_STRING = $QUERY_STRING"
#!/bin/bash
echo Content-Type: text/plain
echo
name=$(echo $QUERY_STRING | cut -d '=' -f 2)
echo "Hello, $name!"
#!/bin/bash
echo Content-Type: text/plain
echo
name=$(cut -d '=' -f 2)
echo "Hello, $name!"
#!/bin/bash
echo Content-Type: text/plain
echo
name=$(echo $QUERY_STRING | cut -d '=' -f 2)
echo Hello, $name!
<html>
<body>
<form action="http://localhost/cgi-bin/hello-03.sh" method="post">
Your name: <input type="text" name="name"><br>
<input type="submit">
</form>
</body>
</html>
<html>
<body>
<form action="http://localhost/cgi-bin/hello-04.sh" method="get">
Your name: <input type="text" name="name"><br>
<input type="submit">
</form>
</body>
</html>
<html>
<body>
<form action="http://localhost/cgi-bin/hello-05.sh" method="get">
Your name: <input type="text" name="name"><br>
<input type="submit">
</form>
</body>
</html>
<html>
<body>
<form action="http://localhost/cgi-bin/hello-06.sh" method="get">
Your name: <input type="text" name="name"><br>
<input type="submit">
</form>
</body>
</html>
<html>
<body>
<form action="http://localhost/cgi-bin/hello-07.sh" method="post">
Your name: <input type="text" name="name"><br>
<input type="submit">
</form>
</body>
</html>
<html>
<body>
<form action="http://localhost/cgi-bin/hello-08.sh" method="get">
Your name: <input type="text" name="name"><br>
<input type="submit">
</form>
</body>
</html>
<html>
<body>
<h3>Register new student</h3>
<form action="school-03.php" method="post">
First name: <input type="text" name="first_name"><br>
Family name: <input type="text" name="family_name"><br>
<input type="submit">
</form>
</body>
</html>
<html>
<body>
<?php
try
{
$db = new PDO ('pgsql: host = localhost; dbname = testdb; user = dbs; password = 1234');
}
catch (\PDOException $e)
{
echo '<p>';
echo $e->getMessage();
echo '</p>';
echo '<p>';
exit ('cannot connect to database');
echo '</p>';
}
echo '<p>';
echo "INSERT INTO students (first_name, family_name) VALUES ( '"
.$_POST["first_name"]."', '".$_POST["family_name"]
."' );";
echo '</p>';
$db->exec ("INSERT INTO students (first_name, family_name) VALUES ( '"
.$_POST["first_name"]."', '".$_POST["family_name"]
."' );");
$stmt = $db->query ('SELECT * FROM students;');
echo '<table><tr>';
while ($row = $stmt->fetch())
{
echo '<tr><td>';
echo $row['id'];
echo '</td><td>';
echo $row['first_name'];
echo '</td><td>';
echo $row['family_name'];
echo '</td></tr>';
}
echo '</tr></table>';
?>
</body>
</html>
<!-- Aus den Log-Dateien des Web-Servers:
[Thu Dec 07 12:50:06.952167 2023] [php:error] [pid 163970] [client ::1:52394]
PHP Fatal error: Uncaught PDOException: SQLSTATE[42601]: Syntax error: 7
FEHLER: Syntaxfehler bei \xc2\xbb)\xc2\xab\nLINE 1: ... INTO students
(first_name, family_name) VALUES ( Peter, );\n
^ in /var/www/dbs/school-01.php:17\nStack trace:\n#0
/var/www/dbs/school-01.php(17): PDO->exec()\n#1 {main}\n thrown in
/var/www/dbs/school-01.php on line 17
-->
<html>
<body>
<h3>Register new student</h3>
<form action="school-04.php" method="post">
First name: <input type="text" name="first_name"><br>
Family name: <input type="text" name="family_name"><br>
<input type="submit">
</form>
</body>
</html>
<html>
<body>
<?php
try
{
$db = new PDO ('pgsql: host = localhost; dbname = testdb; user = dbs; password = 1234');
}
catch (\PDOException $e)
{
echo '<p>';
echo $e->getMessage();
echo '</p>';
echo '<p>';
exit ('cannot connect to database');
echo '</p>';
}
echo '<p>';
$first_name = str_replace ("'", "''", $_POST["first_name"]);
$family_name = str_replace ("'", "''", $_POST["family_name"]);
echo "INSERT INTO students (first_name, family_name) VALUES ( '"
.$first_name."', '".$family_name."' );";
echo '</p>';
$db->exec ("INSERT INTO students (first_name, family_name) VALUES ( '"
.$first_name."', '".$family_name."' );");
$stmt = $db->query ('SELECT * FROM students;');
echo '<table><tr>';
while ($row = $stmt->fetch())
{
echo '<tr><td>';
echo $row['id'];
echo '</td><td>';
echo $row['first_name'];
echo '</td><td>';
echo $row['family_name'];
echo '</td></tr>';
}
echo '</tr></table>';
?>
</body>
</html>
<!-- Aus den Log-Dateien des Web-Servers:
[Thu Dec 07 12:50:06.952167 2023] [php:error] [pid 163970] [client ::1:52394]
PHP Fatal error: Uncaught PDOException: SQLSTATE[42601]: Syntax error: 7
FEHLER: Syntaxfehler bei \xc2\xbb)\xc2\xab\nLINE 1: ... INTO students
(first_name, family_name) VALUES ( Peter, );\n
^ in /var/www/dbs/school-01.php:17\nStack trace:\n#0
/var/www/dbs/school-01.php(17): PDO->exec()\n#1 {main}\n thrown in
/var/www/dbs/school-01.php on line 17
-->
--
-- PostgreSQL database dump
--
-- Dumped from database version 15.5 (Debian 15.5-0+deb12u1)
-- Dumped by pg_dump version 15.5 (Debian 15.5-0+deb12u1)
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;
ALTER TABLE ONLY public.lied DROP CONSTRAINT lied_fkey_cd_id;
ALTER TABLE ONLY public.customer DROP CONSTRAINT customer_fkey_account_id;
ALTER TABLE ONLY public.cd DROP CONSTRAINT cd_fkey_interpret_id;
DROP TRIGGER after_update_account ON public.account;
DROP INDEX public.index_account_number;
ALTER TABLE ONLY public.tier DROP CONSTRAINT tier_pkey;
ALTER TABLE ONLY public.interpret DROP CONSTRAINT interpret_pkey;
ALTER TABLE ONLY public.customer DROP CONSTRAINT customer_pkey;
ALTER TABLE ONLY public.cd DROP CONSTRAINT cd_pkey;
ALTER TABLE ONLY public.account DROP CONSTRAINT account_pkey;
ALTER TABLE public.tier ALTER COLUMN id DROP DEFAULT;
ALTER TABLE public.students ALTER COLUMN id DROP DEFAULT;
ALTER TABLE public.interpret ALTER COLUMN id DROP DEFAULT;
ALTER TABLE public.customer ALTER COLUMN id DROP DEFAULT;
ALTER TABLE public.cd ALTER COLUMN cd_id DROP DEFAULT;
ALTER TABLE public.account ALTER COLUMN id DROP DEFAULT;
DROP SEQUENCE public.tier_id_seq;
DROP TABLE public.tier;
DROP TABLE public.test;
DROP SEQUENCE public.students_id_seq;
DROP TABLE public.students;
DROP VIEW public.lied_auf_cd;
DROP TABLE public.lied;
DROP SEQUENCE public.interpret_id_seq;
DROP TABLE public.interpret;
DROP SEQUENCE public.customer_id_seq;
DROP TABLE public.customer;
DROP SEQUENCE public.cd_cd_id_seq;
DROP TABLE public.cd;
DROP TABLE public.account_log;
DROP SEQUENCE public.account_id_seq;
DROP TABLE public.account;
DROP PROCEDURE public.transfer(IN sender integer, IN receiver integer, IN amount integer);
DROP FUNCTION public.log_change();
--
-- Name: log_change(); Type: FUNCTION; Schema: public; Owner: dbs
--
CREATE FUNCTION public.log_change() RETURNS trigger
LANGUAGE plpgsql
AS $$
begin if new.balance <> old.balance then
insert into account_log (account_id, change, datetime) values (old.id, new.balance - old.balance, now ());
end if;
return new;
end;
$$;
ALTER FUNCTION public.log_change() OWNER TO dbs;
--
-- Name: transfer(integer, integer, integer); Type: PROCEDURE; Schema: public; Owner: dbs
--
CREATE PROCEDURE public.transfer(IN sender integer, IN receiver integer, IN amount integer)
LANGUAGE sql
AS $$UPDATE account SET balance = balance + amount WHERE id = receiver; UPDATE account SET balance = balance - amount WHERE id = sender;$$;
ALTER PROCEDURE public.transfer(IN sender integer, IN receiver integer, IN amount integer) OWNER TO dbs;
SET default_tablespace = '';
SET default_table_access_method = heap;
--
-- Name: account; Type: TABLE; Schema: public; Owner: dbs
--
CREATE TABLE public.account (
id integer NOT NULL,
number text,
balance integer
);
ALTER TABLE public.account OWNER TO dbs;
--
-- Name: account_id_seq; Type: SEQUENCE; Schema: public; Owner: dbs
--
CREATE SEQUENCE public.account_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE public.account_id_seq OWNER TO dbs;
--
-- Name: account_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dbs
--
ALTER SEQUENCE public.account_id_seq OWNED BY public.account.id;
--
-- Name: account_log; Type: TABLE; Schema: public; Owner: dbs
--
CREATE TABLE public.account_log (
account_id integer,
change integer,
datetime timestamp without time zone
);
ALTER TABLE public.account_log OWNER TO dbs;
--
-- Name: cd; Type: TABLE; Schema: public; Owner: dbs
--
CREATE TABLE public.cd (
cd_id integer NOT NULL,
albumtitel text,
interpret_id integer,
erscheinungsjahr integer
);
ALTER TABLE public.cd OWNER TO dbs;
--
-- Name: cd_cd_id_seq; Type: SEQUENCE; Schema: public; Owner: dbs
--
CREATE SEQUENCE public.cd_cd_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE public.cd_cd_id_seq OWNER TO dbs;
--
-- Name: cd_cd_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dbs
--
ALTER SEQUENCE public.cd_cd_id_seq OWNED BY public.cd.cd_id;
--
-- Name: customer; Type: TABLE; Schema: public; Owner: dbs
--
CREATE TABLE public.customer (
id integer NOT NULL,
lastname text,
firstname text,
account_id integer
);
ALTER TABLE public.customer OWNER TO dbs;
--
-- Name: customer_id_seq; Type: SEQUENCE; Schema: public; Owner: dbs
--
CREATE SEQUENCE public.customer_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE public.customer_id_seq OWNER TO dbs;
--
-- Name: customer_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dbs
--
ALTER SEQUENCE public.customer_id_seq OWNED BY public.customer.id;
--
-- Name: interpret; Type: TABLE; Schema: public; Owner: dbs
--
CREATE TABLE public.interpret (
id integer NOT NULL,
name text,
gruendungsjahr integer
);
ALTER TABLE public.interpret OWNER TO dbs;
--
-- Name: interpret_id_seq; Type: SEQUENCE; Schema: public; Owner: dbs
--
CREATE SEQUENCE public.interpret_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE public.interpret_id_seq OWNER TO dbs;
--
-- Name: interpret_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dbs
--
ALTER SEQUENCE public.interpret_id_seq OWNED BY public.interpret.id;
--
-- Name: lied; Type: TABLE; Schema: public; Owner: dbs
--
CREATE TABLE public.lied (
cd_id integer,
track integer,
titel text
);
ALTER TABLE public.lied OWNER TO dbs;
--
-- Name: lied_auf_cd; Type: VIEW; Schema: public; Owner: dbs
--
CREATE VIEW public.lied_auf_cd AS
SELECT cd.cd_id,
cd.albumtitel,
interpret.name,
interpret.gruendungsjahr,
cd.erscheinungsjahr,
lied.track,
lied.titel
FROM ((public.cd
JOIN public.lied ON ((cd.cd_id = lied.cd_id)))
JOIN public.interpret ON ((cd.interpret_id = interpret.id)));
ALTER TABLE public.lied_auf_cd OWNER TO dbs;
--
-- Name: students; Type: TABLE; Schema: public; Owner: dbs
--
CREATE TABLE public.students (
id integer NOT NULL,
first_name text,
family_name text
);
ALTER TABLE public.students OWNER TO dbs;
--
-- Name: students_id_seq; Type: SEQUENCE; Schema: public; Owner: dbs
--
CREATE SEQUENCE public.students_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE public.students_id_seq OWNER TO dbs;
--
-- Name: students_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dbs
--
ALTER SEQUENCE public.students_id_seq OWNED BY public.students.id;
--
-- Name: test; Type: TABLE; Schema: public; Owner: dbs
--
CREATE TABLE public.test (
id integer,
s text
);
ALTER TABLE public.test OWNER TO dbs;
--
-- Name: tier; Type: TABLE; Schema: public; Owner: dbs
--
CREATE TABLE public.tier (
id integer NOT NULL,
name text,
tierart text
);
ALTER TABLE public.tier OWNER TO dbs;
--
-- Name: tier_id_seq; Type: SEQUENCE; Schema: public; Owner: dbs
--
CREATE SEQUENCE public.tier_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE public.tier_id_seq OWNER TO dbs;
--
-- Name: tier_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dbs
--
ALTER SEQUENCE public.tier_id_seq OWNED BY public.tier.id;
--
-- Name: account id; Type: DEFAULT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.account ALTER COLUMN id SET DEFAULT nextval('public.account_id_seq'::regclass);
--
-- Name: cd cd_id; Type: DEFAULT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.cd ALTER COLUMN cd_id SET DEFAULT nextval('public.cd_cd_id_seq'::regclass);
--
-- Name: customer id; Type: DEFAULT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.customer ALTER COLUMN id SET DEFAULT nextval('public.customer_id_seq'::regclass);
--
-- Name: interpret id; Type: DEFAULT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.interpret ALTER COLUMN id SET DEFAULT nextval('public.interpret_id_seq'::regclass);
--
-- Name: students id; Type: DEFAULT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.students ALTER COLUMN id SET DEFAULT nextval('public.students_id_seq'::regclass);
--
-- Name: tier id; Type: DEFAULT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.tier ALTER COLUMN id SET DEFAULT nextval('public.tier_id_seq'::regclass);
--
-- Data for Name: account; Type: TABLE DATA; Schema: public; Owner: dbs
--
COPY public.account (id, number, balance) FROM stdin;
1 DE12 3456 7890 ABCD EFGH IJ 1000009
2 DE98 7654 3210 ABCD EFGH IJ 3999990
\.
--
-- Data for Name: account_log; Type: TABLE DATA; Schema: public; Owner: dbs
--
COPY public.account_log (account_id, change, datetime) FROM stdin;
1 10 2023-12-07 12:07:38.614305
2 -10 2023-12-07 12:07:38.614305
\.
--
-- Data for Name: cd; Type: TABLE DATA; Schema: public; Owner: dbs
--
COPY public.cd (cd_id, albumtitel, interpret_id, erscheinungsjahr) FROM stdin;
4711 Not That Kind 1 2000
4712 Wish You Were Here 2 1975
4713 Freak of Nature 1 2001
4714 Songs for the Deaf 3 2002
\.
--
-- Data for Name: customer; Type: TABLE DATA; Schema: public; Owner: dbs
--
COPY public.customer (id, lastname, firstname, account_id) FROM stdin;
2 Mustermann Erika 1
4 Rich Richie 2
\.
--
-- Data for Name: interpret; Type: TABLE DATA; Schema: public; Owner: dbs
--
COPY public.interpret (id, name, gruendungsjahr) FROM stdin;
1 Anastacia 1999
2 Pink Floyd 1965
3 Queens of the Stone Age 1996
\.
--
-- Data for Name: lied; Type: TABLE DATA; Schema: public; Owner: dbs
--
COPY public.lied (cd_id, track, titel) FROM stdin;
4711 1 Not That Kind
4711 2 I'm Otta Love
4711 3 Cowboys & Kisses
4712 1 Shine On You Crazy Diamond
4713 1 Paid my Dues
\.
--
-- Data for Name: students; Type: TABLE DATA; Schema: public; Owner: dbs
--
COPY public.students (id, first_name, family_name) FROM stdin;
1 Peter Gerwinski
2 Benedikt Wildenhain
\.
--
-- Data for Name: test; Type: TABLE DATA; Schema: public; Owner: dbs
--
COPY public.test (id, s) FROM stdin;
7 Zwerge
\.
--
-- Data for Name: tier; Type: TABLE DATA; Schema: public; Owner: dbs
--
COPY public.tier (id, name, tierart) FROM stdin;
1 Esmeralda Spinne
2 Timmy Hund
3 Dio Katze
4 Tusnelda Spinne
5 Ragnar Katze
6 Putzi Ratte
7 Felix Troll
8 Rex Ameise
\.
--
-- Name: account_id_seq; Type: SEQUENCE SET; Schema: public; Owner: dbs
--
SELECT pg_catalog.setval('public.account_id_seq', 2, true);
--
-- Name: cd_cd_id_seq; Type: SEQUENCE SET; Schema: public; Owner: dbs
--
SELECT pg_catalog.setval('public.cd_cd_id_seq', 1, false);
--
-- Name: customer_id_seq; Type: SEQUENCE SET; Schema: public; Owner: dbs
--
SELECT pg_catalog.setval('public.customer_id_seq', 4, true);
--
-- Name: interpret_id_seq; Type: SEQUENCE SET; Schema: public; Owner: dbs
--
SELECT pg_catalog.setval('public.interpret_id_seq', 1, false);
--
-- Name: students_id_seq; Type: SEQUENCE SET; Schema: public; Owner: dbs
--
SELECT pg_catalog.setval('public.students_id_seq', 2, true);
--
-- Name: tier_id_seq; Type: SEQUENCE SET; Schema: public; Owner: dbs
--
SELECT pg_catalog.setval('public.tier_id_seq', 1, false);
--
-- Name: account account_pkey; Type: CONSTRAINT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.account
ADD CONSTRAINT account_pkey PRIMARY KEY (id);
--
-- Name: cd cd_pkey; Type: CONSTRAINT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.cd
ADD CONSTRAINT cd_pkey PRIMARY KEY (cd_id);
--
-- Name: customer customer_pkey; Type: CONSTRAINT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.customer
ADD CONSTRAINT customer_pkey PRIMARY KEY (id);
--
-- Name: interpret interpret_pkey; Type: CONSTRAINT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.interpret
ADD CONSTRAINT interpret_pkey PRIMARY KEY (id);
--
-- Name: tier tier_pkey; Type: CONSTRAINT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.tier
ADD CONSTRAINT tier_pkey PRIMARY KEY (id);
--
-- Name: index_account_number; Type: INDEX; Schema: public; Owner: dbs
--
CREATE INDEX index_account_number ON public.account USING btree (number);
--
-- Name: account after_update_account; Type: TRIGGER; Schema: public; Owner: dbs
--
CREATE TRIGGER after_update_account AFTER UPDATE ON public.account FOR EACH ROW EXECUTE FUNCTION public.log_change();
--
-- Name: cd cd_fkey_interpret_id; Type: FK CONSTRAINT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.cd
ADD CONSTRAINT cd_fkey_interpret_id FOREIGN KEY (interpret_id) REFERENCES public.interpret(id);
--
-- Name: customer customer_fkey_account_id; Type: FK CONSTRAINT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.customer
ADD CONSTRAINT customer_fkey_account_id FOREIGN KEY (account_id) REFERENCES public.account(id);
--
-- Name: lied lied_fkey_cd_id; Type: FK CONSTRAINT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.lied
ADD CONSTRAINT lied_fkey_cd_id FOREIGN KEY (cd_id) REFERENCES public.cd(cd_id);
--
-- PostgreSQL database dump complete
--
--
-- PostgreSQL database dump
--
-- Dumped from database version 15.5 (Debian 15.5-0+deb12u1)
-- Dumped by pg_dump version 15.5 (Debian 15.5-0+deb12u1)
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;
ALTER TABLE ONLY public.lied DROP CONSTRAINT lied_fkey_cd_id;
ALTER TABLE ONLY public.customer DROP CONSTRAINT customer_fkey_account_id;
ALTER TABLE ONLY public.cd DROP CONSTRAINT cd_fkey_interpret_id;
DROP TRIGGER after_update_account ON public.account;
DROP INDEX public.index_account_number;
ALTER TABLE ONLY public.tier DROP CONSTRAINT tier_pkey;
ALTER TABLE ONLY public.interpret DROP CONSTRAINT interpret_pkey;
ALTER TABLE ONLY public.customer DROP CONSTRAINT customer_pkey;
ALTER TABLE ONLY public.cd DROP CONSTRAINT cd_pkey;
ALTER TABLE ONLY public.account DROP CONSTRAINT account_pkey;
ALTER TABLE public.tier ALTER COLUMN id DROP DEFAULT;
ALTER TABLE public.students ALTER COLUMN id DROP DEFAULT;
ALTER TABLE public.interpret ALTER COLUMN id DROP DEFAULT;
ALTER TABLE public.customer ALTER COLUMN id DROP DEFAULT;
ALTER TABLE public.cd ALTER COLUMN cd_id DROP DEFAULT;
ALTER TABLE public.account ALTER COLUMN id DROP DEFAULT;
DROP SEQUENCE public.tier_id_seq;
DROP TABLE public.tier;
DROP TABLE public.test;
DROP SEQUENCE public.students_id_seq;
DROP TABLE public.students;
DROP VIEW public.lied_auf_cd;
DROP TABLE public.lied;
DROP SEQUENCE public.interpret_id_seq;
DROP TABLE public.interpret;
DROP SEQUENCE public.customer_id_seq;
DROP TABLE public.customer;
DROP SEQUENCE public.cd_cd_id_seq;
DROP TABLE public.cd;
DROP TABLE public.account_log;
DROP SEQUENCE public.account_id_seq;
DROP TABLE public.account;
DROP PROCEDURE public.transfer(IN sender integer, IN receiver integer, IN amount integer);
DROP FUNCTION public.log_change();
--
-- Name: log_change(); Type: FUNCTION; Schema: public; Owner: dbs
--
CREATE FUNCTION public.log_change() RETURNS trigger
LANGUAGE plpgsql
AS $$
begin
if new.balance <> old.balance then
insert into account_log (account_id, change, datetime)
values (old.id, new.balance - old.balance, now ());
end if;
return new;
end;
$$;
ALTER FUNCTION public.log_change() OWNER TO dbs;
--
-- Name: transfer(integer, integer, integer); Type: PROCEDURE; Schema: public; Owner: dbs
--
CREATE PROCEDURE public.transfer(IN sender integer, IN receiver integer, IN amount integer)
LANGUAGE sql
AS $$
UPDATE account SET balance = balance + amount WHERE id = receiver;
UPDATE account SET balance = balance - amount WHERE id = sender;
$$;
ALTER PROCEDURE public.transfer(IN sender integer, IN receiver integer, IN amount integer)
OWNER TO dbs;
SET default_tablespace = '';
SET default_table_access_method = heap;
--
-- Name: account; Type: TABLE; Schema: public; Owner: dbs
--
CREATE TABLE public.account (
id integer NOT NULL,
number text,
balance integer
);
ALTER TABLE public.account OWNER TO dbs;
--
-- Name: account_id_seq; Type: SEQUENCE; Schema: public; Owner: dbs
--
CREATE SEQUENCE public.account_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE public.account_id_seq OWNER TO dbs;
--
-- Name: account_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dbs
--
ALTER SEQUENCE public.account_id_seq OWNED BY public.account.id;
--
-- Name: account_log; Type: TABLE; Schema: public; Owner: dbs
--
CREATE TABLE public.account_log (
account_id integer,
change integer,
datetime timestamp without time zone
);
ALTER TABLE public.account_log OWNER TO dbs;
--
-- Name: cd; Type: TABLE; Schema: public; Owner: dbs
--
CREATE TABLE public.cd (
cd_id integer NOT NULL,
albumtitel text,
interpret_id integer,
erscheinungsjahr integer
);
ALTER TABLE public.cd OWNER TO dbs;
--
-- Name: cd_cd_id_seq; Type: SEQUENCE; Schema: public; Owner: dbs
--
CREATE SEQUENCE public.cd_cd_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE public.cd_cd_id_seq OWNER TO dbs;
--
-- Name: cd_cd_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dbs
--
ALTER SEQUENCE public.cd_cd_id_seq OWNED BY public.cd.cd_id;
--
-- Name: customer; Type: TABLE; Schema: public; Owner: dbs
--
CREATE TABLE public.customer (
id integer NOT NULL,
lastname text,
firstname text,
account_id integer
);
ALTER TABLE public.customer OWNER TO dbs;
--
-- Name: customer_id_seq; Type: SEQUENCE; Schema: public; Owner: dbs
--
CREATE SEQUENCE public.customer_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE public.customer_id_seq OWNER TO dbs;
--
-- Name: customer_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dbs
--
ALTER SEQUENCE public.customer_id_seq OWNED BY public.customer.id;
--
-- Name: interpret; Type: TABLE; Schema: public; Owner: dbs
--
CREATE TABLE public.interpret (
id integer NOT NULL,
name text,
gruendungsjahr integer
);
ALTER TABLE public.interpret OWNER TO dbs;
--
-- Name: interpret_id_seq; Type: SEQUENCE; Schema: public; Owner: dbs
--
CREATE SEQUENCE public.interpret_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE public.interpret_id_seq OWNER TO dbs;
--
-- Name: interpret_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dbs
--
ALTER SEQUENCE public.interpret_id_seq OWNED BY public.interpret.id;
--
-- Name: lied; Type: TABLE; Schema: public; Owner: dbs
--
CREATE TABLE public.lied (
cd_id integer,
track integer,
titel text
);
ALTER TABLE public.lied OWNER TO dbs;
--
-- Name: lied_auf_cd; Type: VIEW; Schema: public; Owner: dbs
--
CREATE VIEW public.lied_auf_cd AS
SELECT cd.cd_id,
cd.albumtitel,
interpret.name,
interpret.gruendungsjahr,
cd.erscheinungsjahr,
lied.track,
lied.titel
FROM ((public.cd
JOIN public.lied ON ((cd.cd_id = lied.cd_id)))
JOIN public.interpret ON ((cd.interpret_id = interpret.id)));
ALTER TABLE public.lied_auf_cd OWNER TO dbs;
--
-- Name: students; Type: TABLE; Schema: public; Owner: dbs
--
CREATE TABLE public.students (
id integer NOT NULL,
first_name text,
family_name text
);
ALTER TABLE public.students OWNER TO dbs;
--
-- Name: students_id_seq; Type: SEQUENCE; Schema: public; Owner: dbs
--
CREATE SEQUENCE public.students_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE public.students_id_seq OWNER TO dbs;
--
-- Name: students_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dbs
--
ALTER SEQUENCE public.students_id_seq OWNED BY public.students.id;
--
-- Name: test; Type: TABLE; Schema: public; Owner: dbs
--
CREATE TABLE public.test (
id integer,
s text
);
ALTER TABLE public.test OWNER TO dbs;
--
-- Name: tier; Type: TABLE; Schema: public; Owner: dbs
--
CREATE TABLE public.tier (
id integer NOT NULL,
name text,
tierart text
);
ALTER TABLE public.tier OWNER TO dbs;
--
-- Name: tier_id_seq; Type: SEQUENCE; Schema: public; Owner: dbs
--
CREATE SEQUENCE public.tier_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE public.tier_id_seq OWNER TO dbs;
--
-- Name: tier_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dbs
--
ALTER SEQUENCE public.tier_id_seq OWNED BY public.tier.id;
--
-- Name: account id; Type: DEFAULT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.account ALTER COLUMN id SET DEFAULT nextval('public.account_id_seq'::regclass);
--
-- Name: cd cd_id; Type: DEFAULT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.cd ALTER COLUMN cd_id SET DEFAULT nextval('public.cd_cd_id_seq'::regclass);
--
-- Name: customer id; Type: DEFAULT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.customer ALTER COLUMN id SET DEFAULT nextval('public.customer_id_seq'::regclass);
--
-- Name: interpret id; Type: DEFAULT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.interpret ALTER COLUMN id SET DEFAULT nextval('public.interpret_id_seq'::regclass);
--
-- Name: students id; Type: DEFAULT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.students ALTER COLUMN id SET DEFAULT nextval('public.students_id_seq'::regclass);
--
-- Name: tier id; Type: DEFAULT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.tier ALTER COLUMN id SET DEFAULT nextval('public.tier_id_seq'::regclass);
--
-- Data for Name: account; Type: TABLE DATA; Schema: public; Owner: dbs
--
COPY public.account (id, number, balance) FROM stdin;
1 DE12 3456 7890 ABCD EFGH IJ 1000009
2 DE98 7654 3210 ABCD EFGH IJ 3999990
\.
--
-- Data for Name: account_log; Type: TABLE DATA; Schema: public; Owner: dbs
--
COPY public.account_log (account_id, change, datetime) FROM stdin;
1 10 2023-12-07 12:07:38.614305
2 -10 2023-12-07 12:07:38.614305
\.
--
-- Data for Name: cd; Type: TABLE DATA; Schema: public; Owner: dbs
--
COPY public.cd (cd_id, albumtitel, interpret_id, erscheinungsjahr) FROM stdin;
4711 Not That Kind 1 2000
4712 Wish You Were Here 2 1975
4713 Freak of Nature 1 2001
4714 Songs for the Deaf 3 2002
\.
--
-- Data for Name: customer; Type: TABLE DATA; Schema: public; Owner: dbs
--
COPY public.customer (id, lastname, firstname, account_id) FROM stdin;
2 Mustermann Erika 1
4 Rich Richie 2
\.
--
-- Data for Name: interpret; Type: TABLE DATA; Schema: public; Owner: dbs
--
COPY public.interpret (id, name, gruendungsjahr) FROM stdin;
1 Anastacia 1999
2 Pink Floyd 1965
3 Queens of the Stone Age 1996
\.
--
-- Data for Name: lied; Type: TABLE DATA; Schema: public; Owner: dbs
--
COPY public.lied (cd_id, track, titel) FROM stdin;
4711 1 Not That Kind
4711 2 I'm Otta Love
4711 3 Cowboys & Kisses
4712 1 Shine On You Crazy Diamond
4713 1 Paid my Dues
\.
--
-- Data for Name: students; Type: TABLE DATA; Schema: public; Owner: dbs
--
COPY public.students (id, first_name, family_name) FROM stdin;
1 Peter Gerwinski
2 Benedikt Wildenhain
\.
--
-- Data for Name: test; Type: TABLE DATA; Schema: public; Owner: dbs
--
COPY public.test (id, s) FROM stdin;
7 Zwerge
\.
--
-- Data for Name: tier; Type: TABLE DATA; Schema: public; Owner: dbs
--
COPY public.tier (id, name, tierart) FROM stdin;
1 Esmeralda Spinne
2 Timmy Hund
3 Dio Katze
4 Tusnelda Spinne
5 Ragnar Katze
6 Putzi Ratte
7 Felix Troll
8 Rex Ameise
\.
--
-- Name: account_id_seq; Type: SEQUENCE SET; Schema: public; Owner: dbs
--
SELECT pg_catalog.setval('public.account_id_seq', 2, true);
--
-- Name: cd_cd_id_seq; Type: SEQUENCE SET; Schema: public; Owner: dbs
--
SELECT pg_catalog.setval('public.cd_cd_id_seq', 1, false);
--
-- Name: customer_id_seq; Type: SEQUENCE SET; Schema: public; Owner: dbs
--
SELECT pg_catalog.setval('public.customer_id_seq', 4, true);
--
-- Name: interpret_id_seq; Type: SEQUENCE SET; Schema: public; Owner: dbs
--
SELECT pg_catalog.setval('public.interpret_id_seq', 1, false);
--
-- Name: students_id_seq; Type: SEQUENCE SET; Schema: public; Owner: dbs
--
SELECT pg_catalog.setval('public.students_id_seq', 2, true);
--
-- Name: tier_id_seq; Type: SEQUENCE SET; Schema: public; Owner: dbs
--
SELECT pg_catalog.setval('public.tier_id_seq', 1, false);
--
-- Name: account account_pkey; Type: CONSTRAINT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.account
ADD CONSTRAINT account_pkey PRIMARY KEY (id);
--
-- Name: cd cd_pkey; Type: CONSTRAINT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.cd
ADD CONSTRAINT cd_pkey PRIMARY KEY (cd_id);
--
-- Name: customer customer_pkey; Type: CONSTRAINT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.customer
ADD CONSTRAINT customer_pkey PRIMARY KEY (id);
--
-- Name: interpret interpret_pkey; Type: CONSTRAINT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.interpret
ADD CONSTRAINT interpret_pkey PRIMARY KEY (id);
--
-- Name: tier tier_pkey; Type: CONSTRAINT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.tier
ADD CONSTRAINT tier_pkey PRIMARY KEY (id);
--
-- Name: index_account_number; Type: INDEX; Schema: public; Owner: dbs
--
CREATE INDEX index_account_number ON public.account USING btree (number);
--
-- Name: account after_update_account; Type: TRIGGER; Schema: public; Owner: dbs
--
CREATE TRIGGER after_update_account AFTER UPDATE ON public.account
FOR EACH ROW EXECUTE FUNCTION public.log_change();
--
-- Name: cd cd_fkey_interpret_id; Type: FK CONSTRAINT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.cd
ADD CONSTRAINT cd_fkey_interpret_id FOREIGN KEY (interpret_id) REFERENCES public.interpret(id);
--
-- Name: customer customer_fkey_account_id; Type: FK CONSTRAINT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.customer
ADD CONSTRAINT customer_fkey_account_id FOREIGN KEY (account_id) REFERENCES public.account(id);
--
-- Name: lied lied_fkey_cd_id; Type: FK CONSTRAINT; Schema: public; Owner: dbs
--
ALTER TABLE ONLY public.lied
ADD CONSTRAINT lied_fkey_cd_id FOREIGN KEY (cd_id) REFERENCES public.cd(cd_id);
--
-- PostgreSQL database dump complete
--
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment