assalamualaykum sobat, apakabar sobat dihari ini :D.
tak bertele-tele, langsung saja kita kepembahasan, kali ini saya akan sedikit mendeskripsikan bagaimana cara membuat schema pada postgresql, berikut cara-caranya :
Buat db baru :
root@ubuntu-desktop:/home/ubuntu# createdb dbsiak -U irfan2
masuk user postgress :
root@ubuntu-desktop:/home/ubuntu# su - postgres
masuk ke dbsiak :
postgres@ubuntu-desktop:~$ psql -U postgres dbsiak
Password for user postgres:
psql (9.3.9)
Type "help" for help.
dbsiak=#
buat user adminti :
dbsiak=# create user adminti with password 'ti';
CREATE ROLE
buat scema untuk proditi :
dbsiak=# create schema proditi;
CREATE SCHEMA
hapus seluruh skema yang ada pada proditi :
dbsiak=# revoke all on schema proditi from public;
REVOKE
berikan izin seluruh skema ke adminti:
dbsiak=# grant all on schema proditi to adminti;
GRANT
buat table member :
dbsiak=# create table member(
dbsiak(# id serial primary key,
dbsiak(# nama varchar(30) not null,
dbsiak(# email varchar(40) unique,
dbsiak(# gender char(1),
dbsiak(# tmp_lahir varchar(30),
dbsiak(# tgl_lahir date);
CREATE TABLE
buat table proditi.mahasiswa yang inheritance ke member :
dbsiak=# create table proditi.mahasiswa(
dbsiak(# kodeprodi varchar(2) default 'TI',
dbsiak(# nim varchar(10) unique,
dbsiak(# thn_masuk integer,
dbsiak(# ipk double precision)
dbsiak-# inherits (member);
CREATE TABLE
berikan hak akses
proditi.mahasiswa ke adminti :
dbsiak=# grant all on proditi.mahasiswa to adminti;
GRANT
logout kemudian masuk ke menggunakan user adminti ke
dbsiak :
dbsiak=# \q
postgres@ubuntu-desktop:~$ psql -U adminti dbsiak
Password for user adminti:
psql (9.3.9)
Type "help" for help.
dbsiak=>
lihat skema :
dbsiak=> \d
List of
relations
Schema | Name
| Type |
Owner
--------+---------------+----------+----------
public | member |
table | postgres
public | member_id_seq
| sequence | postgres
(2 rows)
lihat path :
dbsiak=> show search_path;
search_path
----------------
"$user",public
(1 row)
ubah search_path dari adminti :
dbsiak=> alter role adminti set search_path=proditi,
public;
ALTER ROLE
keluar dari postgres dan masuk kembali kemudian lihat
search_path menggunakan (\d) :
dbsiak=> \q
postgres@ubuntu-desktop:~$ psql -U adminti dbsiak
Password for user adminti:
psql (9.3.9)
Type "help" for help.
dbsiak=> \d
List of
relations
Schema |
Name | Type |
Owner
---------+---------------+----------+----------
proditi |
mahasiswa | table | postgres
public | member | table | postgres
public | member_id_seq | sequence | postgres
(3 rows)
lihat deskripsi dari proditi.mahasiswa :
dbsiak=> \d proditi.mahasiswa;
Table
"proditi.mahasiswa"
Column |
Type | Modifiers
-----------+-----------------------+-----------------------------------------------------
id | integer | not null default
nextval('member_id_seq'::regclass)
nama | character varying(30) | not null
email | character varying(40) |
gender | character(1) |
tmp_lahir | character
varying(30) |
tgl_lahir | date |
kodeprodi | character
varying(2) | default 'TI'::character
varying
nim | character varying(10) |
thn_masuk |
integer |
ipk | double precision |
Indexes:
"mahasiswa_nim_key" UNIQUE CONSTRAINT, btree (nim)
Inherits: member
masukkan data pada proditi.mahasiswa kemudian lihat hasil:
dbsiak=> insert into proditi.mahasiswa values(1,
'irfan','assidiq.irfan@gmail.com','L','cianjur','1992-12-28','TI','0110214033',2014,3.14);
INSERT 0 1
dbsiak=> select * from proditi.mahasiswa;
id | nama |
email | gender |
tmp_lahir | tgl_lahir | kodeprodi | nim
| thn_masuk | ipk
----+-------+-------------------------+--------+-----------+------------+-----------+------------+-----------+------
1 | irfan |
assidiq.irfan@gmail.com | L |
cianjur | 1992-12-28 | TI | 0110214033 | 2014 | 3.14
(1 row)
keluar dari user adminti dan masuk sebagai postgres,
kemudian buat user baru :
dbsiak=# create user usercab2 with password '2';
CREATE ROLE
buat schema baak :
dbsiak=# create schema baak;
CREATE SCHEMA
hilangkan hak akses public pada schema :
dbsiak=# revoke all on schema baak from public;
REVOKE
berikan hak akses public pada schema :
dbsiak=# grant all on schema baak to public;
GRANT
ubah nama skema baak menjadi akademik :
dbsiak=# alter schema baak rename to akademik;
ALTER SCHEMA
ubah owner dari schema akademik ke adminti :
dbsiak=# alter schema akademik owner to adminti;
ALTER SCHEMA
yupss, hanya itu saja deskriptif tentang cara membuat schema, semoga bermanfaat.