Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Postgre baasi reindex ei õnnestu (Table contains duplicated values). märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
warwas
HV Guru
warwas

liitunud: 06.07.2003



Autoriseeritud ID-kaardiga

sõnum 09.03.2010 15:59:12 Postgre baasi reindex ei õnnestu (Table contains duplicated values). vasta tsitaadiga

Tekkis probleem ühe postgre baasiga.
Üks X hetk sai avastatud, et baas on juba kole-kole suureks kasvanud. Ajasin siis kõigepealt full vacuum'iga üle ja seejärel lasin käima reindex'i. Vacuum õnnestus edukalt, reindex aga saab errori:
ERROR:  could not create unique index
DETAIL:  Table contains duplicated values.

Kogu logi:
Spoiler Spoiler Spoiler

Küsimus siis järgmine - kuidas ma selle vigase tabeli sealt üles leian? Logist on näha, et tabeleid indexeeritakse suht kaootlises järjekorras...
Kommentaarid: 247 loe/lisa Kasutajad arvavad:  :: 0 :: 3 :: 224
tagasi üles
vaata kasutaja infot saada privaatsõnum
wk
HV vaatleja

liitunud: 22.05.2007




sõnum 09.03.2010 16:55:26 vasta tsitaadiga

Eee, kas Sa tabeleid ükshaaval indekseerida ei saa?
_________________
Kõike hääd,
WK
Kommentaarid: 8 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum
warwas
HV Guru
warwas

liitunud: 06.07.2003



Autoriseeritud ID-kaardiga

sõnum 09.03.2010 17:03:10 vasta tsitaadiga

wk kirjutas:
Eee, kas Sa tabeleid ükshaaval indekseerida ei saa?

hmm.. vaatasin praegu pgAdminni liideses ringi ja tunudb, et mingi selline võimalus on isegi olemas... kuigi see ei anna mulle eriti mingit tagasisidet.
Kuna neid tabeleid on ikka paras hunnik, siis peab vist mingi skripti ehitama, mis tabeleid järjekorras läbi käima hakkab ...
Kommentaarid: 247 loe/lisa Kasutajad arvavad:  :: 0 :: 3 :: 224
tagasi üles
vaata kasutaja infot saada privaatsõnum
ref
Kreisi kasutaja

liitunud: 10.08.2003




sõnum 10.03.2010 13:28:41 vasta tsitaadiga

warwas, miks sa otse reindekseerimiskäsku sqlis ei käivita ? ei ole mingit pgAdminni vms vaja vahele, suvalises kliendis, soovitavalt pg enda omas, käivitad:

REINDEX TABLE tabelinimi;

või, kui tead täpselt milline index vajalik on siis:

REINDEX INDEX indeksinimi;


Üldiselt, duplikaatide puhuks ehk aitab see link: http://www.postgresonline.com/journal/index.php?/archives/22-Deleting-Duplicate-Records-in-a-Table.html
Ja Postgre manuaal reindexi kohta pole ka just halb asi: http://www.postgresql.org/docs/8.3/interactive/sql-reindex.html (kui sul on mõni muu baasiversioon, kui 8.3, siis otsi oma versioonile vajalik dokumentatsioon, kuid lähimas ümbruses 8.2 ja 8.4 on too käsk samasugune)
Kommentaarid: 17 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 15
tagasi üles
vaata kasutaja infot saada privaatsõnum
incx
HV kasutaja
incx

liitunud: 10.11.2001



Autoriseeritud ID-kaardiga

sõnum 11.03.2010 01:49:28 vasta tsitaadiga

SELECT 'REINDEX TABLE ' || table_schema || '.' || table_name || ';'  from information_schema.tables WHERE table_type='BASE TABLE' AND table_schema IN ('public', 'teisedvajalikudschemad');

Ja siis copypastedkäivitad tulemuse.

Samas, kui sul unique indexiga tabelis duplikaatkirjeid on, siis selle baasi sisu küll väga usaldada ei tasu. Masendavalt vana PG versiooniga tegu või riistvara keerab oma soovi järgi bitte paremale/pahemale?

_________________
I have never understood the female capacity to avoid a direct answer to any question.
-- Spock, "This Side of Paradise", stardate 3417.3
Kommentaarid: 20 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 20
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Postgre baasi reindex ei õnnestu (Table contains duplicated values).
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.