Q je na pgsql

hlasů
0

Jsem nováček pgSQL. Mám pár questionss na to:

1) Vím, že je možné získat přístup sloupce <schema>.<table_name>, ale při pokusu o přístup k sloupců, jako <db_name>.<schema>.<table_name>je házení chyby, jako

Cross-database references are not implemented

Jak mohu implementovat?

2) Máme 10+ tabulky a 6 má 2000 + řádků. Je to v pořádku udržovat všechny z nich v jedné databázi? Nebo bych měl vytvořit DBS udržovat je?

3) Z výše uvedených otázek tabulek, které mají více než 2000 + řádků pro určitý proces potřebuji několik řádků dat. Vytvořil jsem názory, aby si ty řádky. Například: tabulka obsahuje údaje o zaměstnanci, které rozdělit do 3 typů; manažer, architekt a inženýr. Velmi zřejmé, co tuto tabulku nedostávají každý každého procesu ... proces použít ke čtení dat z ní ... Myslím, že existují dva způsoby, jak získat data SELECT * FROM emp WHERE type='manager', nebo se může vytvářet pohledy na správce, architekt n inženýr a získat dataSELECT * FROM view_manager

Můžete navrhnout nějaké lepší způsob, jak to udělat?

4) Do pohledy také vyžadují úložný prostor, stejně jako tabulky dělat?

Děkuji předem.

Položena 26/09/2008 v 05:09
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
0

1: řešením je otevřít připojení k jiné databázi, a (pokud používáte psql (1)), nastavte jej jako aktuální připojení. To však bude fungovat pouze v případě, nesnažte se připojit tabulek v obou databázích.

Odpovězeno 26/09/2008 v 05:20
zdroj uživatelem

hlasů
0

1) To znamená, že to není vlastnost Postgres podporuje. Nevím, žádný způsob, jak vytvořit dotaz, který běží na více než jednu databázi.

2) To je v pořádku pro jednu databázi. Jednotlivé databáze mohou obsahuje miliardy řad.

3) Neobtěžujte vytvářet pohledy, dotazy jsou dostatečně jednoduché tak jako tak.

4) Zobrazení nevyžadují místo v databázi s výjimkou jejich definici dotazu.

Odpovězeno 01/10/2008 v 04:19
zdroj uživatelem

hlasů
1

  1. Kříž databáze existuje v PostgreSQL už léta. Musíte předponu název databáze od názvu databáze (a samozřejmě mají právo dotazovat na to). Půjdeš se něco takového:

    SELECT alias_1.col1, alias_2.col3 Z tabulky table_1 jako alias_1, database_b.table_2 as alias_2, kde ...

    Pokud je databáze na jiné instance, pak budete muset použít dblink contrib.

  2. Tato otázka laň ne aby sens. Prosím upřesnit.
  3. Obecně platí, že názory jsou využívány pro zjednodušení psaní dalších dotazů, které je opakované použití. Ve vašem případě, jak to popsat, možná, že uloženy proceudre by lépe hodí vás potřebuje.
  4. Ne, očekáváme definici pohledu.
Odpovězeno 01/10/2008 v 04:25
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more