PostgreSQL ALTER
Olek - 28-02-2006 13:11
PostgreSQL ALTER
Witam. Mam taki problemik w PostgreSQL, potrzebuje roszerzyc pole
ALTER TABLE "produkcja"."wagi_zmiany" ALTER COLUMN "cechy_dokumentu" TYPE VARCHAR(400);
ale mam komunikat: ERROR: cannot alter type of a column used by a view or rule
ze wzgledu ze mam w widokach zawarta ta tabele i to pole. Czy istnieje mozliwosc wymuszenia zmiany bez sprawdzania referencji ?
Olek -------------
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 28-02-2006 13:11
Olek wrote: > Witam. > Mam taki problemik w PostgreSQL, potrzebuje roszerzyc pole > > ALTER TABLE "produkcja"."wagi_zmiany" > ALTER COLUMN "cechy_dokumentu" TYPE VARCHAR(400); > > ale mam komunikat: > ERROR: cannot alter type of a column used by a view or rule > > ze wzgledu ze mam w widokach zawarta ta tabele i to pole. > Czy istnieje mozliwosc wymuszenia zmiany bez sprawdzania referencji ?
Chyba się nie da. Ja stosuje taki skrypcik:
pg_dump -U postgres -F c nazwa_bazy > baza.dump
# jeśli masz świeży dump, to powyższego nie musisz robić.
pg_restore -l baza.dump | grep 'VIEW' > obviews.txt; pg_restore -c -L obviews.txt bmz.dump > views.sql
I teraz po ostatnim DROP, a przed pierwszym CREATE należy wstawić własne komendy, które zmodyfikuj tabele.
P.S. Niestety, trzeba to robić z dumpa przy pomocy pg_restore, pg_dump nie akceptuje obcji -L (i innych potrzebnych pewnie też :) ).
-- P.M.
=?iso-8859-2?Q?Andrzej_Str=F3=BFy=F1ski?= - 28-02-2006 13:11
Użytkownik "Olek" <kwojcieszek@gmail.com> napisał w wiadomości news:dtkdsv$7f0$1@inews.gazeta.pl... > Witam. > Mam taki problemik w PostgreSQL, potrzebuje roszerzyc pole > > ALTER TABLE "produkcja"."wagi_zmiany" > ALTER COLUMN "cechy_dokumentu" TYPE VARCHAR(400); > > ale mam komunikat: > ERROR: cannot alter type of a column used by a view or rule > > ze wzgledu ze mam w widokach zawarta ta tabele i to pole. > Czy istnieje mozliwosc wymuszenia zmiany bez sprawdzania referencji ?
a nie możesz posłuchać systemu i usunąć widok, zmodyfikować tabelę, utworzyć widok na nowo?
A.S.
Olek - 28-02-2006 13:11
Andrzej Stróżyński napisał(a): > > Użytkownik "Olek" <kwojcieszek@gmail.com> napisał w wiadomości > news:dtkdsv$7f0$1@inews.gazeta.pl... >> Witam. >> Mam taki problemik w PostgreSQL, potrzebuje roszerzyc pole >> >> ALTER TABLE "produkcja"."wagi_zmiany" >> ALTER COLUMN "cechy_dokumentu" TYPE VARCHAR(400); >> >> ale mam komunikat: >> ERROR: cannot alter type of a column used by a view or rule >> >> ze wzgledu ze mam w widokach zawarta ta tabele i to pole. >> Czy istnieje mozliwosc wymuszenia zmiany bez sprawdzania referencji ? > > a nie możesz posłuchać systemu i usunąć widok, zmodyfikować tabelę, > utworzyć widok na nowo? > > A.S. Moge ale tych widokow powiazanych jest troszke, ale niestety nie bede mial wyjscia chyba, dump odpada.
Pozdrowienia olek -------------------
max - 28-02-2006 13:11
>> A.S. > Moge ale tych widokow powiazanych jest troszke, ale niestety nie bede > mial wyjscia chyba, dump odpada. > > Pozdrowienia olek > ------------------- Troszkę to ile ?
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[PostgreSQL] - jak =?ISO-8859-2?Q?zabezpieczy=E6_interesy_tw?==?ISO-8859-2?Q?=F3rcy_systemu_=3F=3F=3F?=
postgresql - int/int
postgresql Select count(*) czy raczej Select count(ID)
[PostgreSQL] jak =?ISO-8859-2?Q?pobra=E6_warto=B6=E6_zwracan?==?ISO-8859-2?Q?=B1_przez_funkcj=EA=3F?=
[postgresql] INSERT OR UPDATE - jak =?ISO-8859-2?Q?b=EAdzie_na?==?ISO-8859-2?Q?jlepiej=3F?=
[postgresql] kilka =?ISO-8859-2?Q?rekord=F3w_subquery_jako_?==?ISO-8859-2?Q?string?=
[PostgreSQL] Jak =?ISO-8859-2?Q?po=B3=B1czy=E6_funkcje_z_w?==?ISO-8859-2?Q?idokiem?=
Postgres - replikcja master-master
Dopasowanie do "najlepszego" dopasowania :) [ PostgreSQL]
Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
zanotowane.pldoc.pisz.plpdf.pisz.plnocnerozmowy.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|