Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako da pokupim metapodatke...

[es] :: PostgreSQL :: Kako da pokupim metapodatke...

[ Pregleda: 4009 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

aleksandarpopov
IT consultant
Senta

Član broj: 57172
Poruke: 484
*.suonline.net.

Sajt: www.linkedin.com/in/aleks..


Profil

icon Kako da pokupim metapodatke...25.05.2006. u 18:22 - pre 217 meseci
Pozdrav!
Imam nekoliko pitanja:
1.Kako da izlistam sve tabele neke baze podataka? Tj. u kojoj sistemskoj tabeli mi se to nalazi?
2.Kako da odredim: koje kolone ima odredjena tabela, da li je kolona pk, fk, tip podatka, velicinu... i NAJVAZNIJE kako da odredim ime tabele na koju mi se foreign key referencira? Znaci nesto kao za datu tabelu i ime kolone da mi vrati ove metapodatke...
Hvala unapred, poz!

RTFM
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.tippnet.co.yu.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Kako da pokupim metapodatke...26.05.2006. u 08:54 - pre 217 meseci
Slicna pitanja si nedavno postavljao za Firebird:)

Generalno, sve ti se nalazi u semama pg_catalog i/ili information_schema.

tabele
Code:

SELECT table_name
  FROM information_schema.tables
 WHERE table_schema = 'public'   -- konkretna sema
   AND table_type = 'BASE TABLE' -- (BASE TABLE, LOCAL TEMPORARY, VIEW)
 ORDER BY table_name


kolone
Code:

SELECT table_name, column_name, data_type
  FROM information_schema.columns
 WHERE table_schema = 'public'
 ORDER BY table_name, ordinal_position


primarni kljucevi
Code:

SELECT c.relname AS table_name,
       a.attname AS column_name,
       CASE WHEN t.typtype = 'd'
            THEN pg_catalog.format_type(t.typbasetype, NULL)
            ELSE pg_catalog.format_type(a.atttypid, NULL)
       END AS data_type
  FROM pg_class AS c
       JOIN pg_constraint AS o
             ON c.oid = o.conrelid
            AND o.contype = 'p'
       JOIN pg_attribute AS a
             ON a.attrelid = c.oid
            AND a.attnum = ANY (o.conkey)
       JOIN pg_namespace AS n
             ON n.nspname = 'public'
            AND c.relnamespace = n.oid
       JOIN pg_type AS t
             ON a.atttypid = t.oid
 ORDER BY c.relname, a.attnum


Ovo sam ja koristio u nekom svom programu. Foreign key mi nisu trebali pa ih zato ni ne saljem, a mrzi me da kopam po semama :)
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

aleksandarpopov
IT consultant
Senta

Član broj: 57172
Poruke: 484
*.ns.ac.yu.

Sajt: www.linkedin.com/in/aleks..


Profil

icon Re: Kako da pokupim metapodatke...26.05.2006. u 14:30 - pre 217 meseci
Hvala ti!
Pokusacu sam za fk, ako zapnem javicu...
Da, postavljao sam ovo pitanje i za Firebird ... nisam se jos odlucio sta da koristim za projekat na kom radim :)
Poz
RTFM
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.tippnet.co.yu.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Kako da pokupim metapodatke...27.05.2006. u 07:18 - pre 217 meseci
Evo i foreign key
Code:

SELECT c.table_name, c.column_name, ctu.table_name AS references_table_name
  FROM information_schema.columns AS c
       INNER JOIN information_schema.key_column_usage AS kcu
          ON c.table_catalog = kcu.table_catalog
         AND c.table_schema = kcu.table_schema
         AND c.table_name = kcu.table_name
         AND c.column_name = kcu.column_name
         AND c.table_schema = 'public'
       INNER JOIN information_schema.table_constraints AS tc
          ON kcu.table_catalog = tc.table_catalog
         AND kcu.table_schema = tc.table_schema
         AND kcu.table_name = tc.table_name
         AND kcu.constraint_name = tc.constraint_name
         AND tc.constraint_type = 'FOREIGN KEY'
       INNER JOIN information_schema.constraint_table_usage AS ctu
          ON tc.constraint_catalog = ctu.constraint_catalog
         AND tc.constraint_schema = ctu.constraint_schema
         AND tc.constraint_name = ctu.constraint_name
 ORDER BY c.table_name, c.ordinal_position


Primary key pomocu inforation_schema
Code:

SELECT c.table_name, c.column_name
  FROM information_schema.columns AS c
       INNER JOIN information_schema.key_column_usage AS kcu
          ON c.table_catalog = kcu.table_catalog
         AND c.table_schema = kcu.table_schema
         AND c.table_name = kcu.table_name
         AND c.column_name = kcu.column_name
         AND c.table_schema = 'public'
       INNER JOIN information_schema.table_constraints AS tc
          ON kcu.table_catalog = tc.table_catalog
         AND kcu.table_schema = tc.table_schema
         AND kcu.table_name = tc.table_name
         AND kcu.constraint_name = tc.constraint_name
         AND tc.constraint_type = 'PRIMARY KEY'
 ORDER BY c.table_name, c.ordinal_position

"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

aleksandarpopov
IT consultant
Senta

Član broj: 57172
Poruke: 484
*.sksyu.net.

Sajt: www.linkedin.com/in/aleks..


Profil

icon Re: Kako da pokupim metapodatke...28.05.2006. u 15:06 - pre 217 meseci
Hvala, ustedeo si mi dosta vremena!
Pozdrav!
RTFM
 
Odgovor na temu

miličić.marko
Miličić Marko
Novi Sad

Član broj: 12598
Poruke: 346
213.244.197.*

Sajt: milicicmarko.blogspot.com


+1 Profil

icon Re: Kako da pokupim metapodatke...07.06.2006. u 21:33 - pre 216 meseci
Vidi kako to radi phppgadmin...
Skripte iz oblasti računarstva na Srpskom jeziku
kontakt email milicic [tacka] marko [na] gmail [tacka] com

Numizmatička kolekcija:
http://numismaticscollection.blogspot.com/
 
Odgovor na temu

abyss

Član broj: 2945
Poruke: 684
91.150.126.*



+51 Profil

icon Re: Kako da pokupim metapodatke...27.08.2007. u 10:22 - pre 201 meseci
Izvinjavam se sto izvlacim temu iz naftalina...
Kako izvuci precision i scale gde je tip numeric(18,2)[] - niz?

u tom slucaju upit za kolone daje data_type = array, udt_name = _numeric a scale i precision nista??!!?
--
"Once hadst thou passions and calledst them evil. But now hast thou only
thy virtues: they grew out of thy passions."
 
Odgovor na temu

[es] :: PostgreSQL :: Kako da pokupim metapodatke...

[ Pregleda: 4009 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.