konto usunięte

Temat: PostgreSQL - zadeklarowany typ

Czy jest jakiś sposób na zmianę typu który został zadeklarowany przez

CREATE TYPE schemat.nazwa AS .....

i tu lista kolumn i np nazwisko character varying (200) a chciałbym zmienić albo długość tego varchara albo typ na text. Nie mogę nigdzie znaleźć tego w pgAdminie w necie szukałem info ale z tego co widze to dokumentacje dopuscza alter type dla wlasciciela i cos tam jeszcze... Mam wrażenie, że nie da się tego zmodyfikowac.. Czy pozostaje usunąć stary..co za tym idzie funkcje zależne od niego też.. no i stworzyć wszystko od początku..?

Jakaś rada?

konto usunięte

Temat: PostgreSQL - zadeklarowany typ

Zapisz całą bazę jako skrypt sql, włącznie z danymi, przeedytuj odpowiedni fragment dotyczący interesującego Cię pola, usuń bazę, utwórz bazę na podstawie skryptu.

konto usunięte

Temat: PostgreSQL - zadeklarowany typ

Heh ;) myślę, że już lepiej usunąć funkcje i typ, stworzyć typ i wgrać funkcje ;) ja mam deklaracje tego typu.. myślałem, że może jest jakaś krótsza droga..:)

konto usunięte

Temat: PostgreSQL - zadeklarowany typ

Wojtek Stępień:
Heh ;) myślę, że już lepiej usunąć funkcje i typ, stworzyć typ i wgrać funkcje ;) ja mam deklaracje tego typu.. myślałem, że może jest jakaś krótsza droga..:)
A może ALTER TYPE?

konto usunięte

Temat: PostgreSQL - zadeklarowany typ

Dariusz Wawer:
Zapisz całą bazę jako skrypt sql, włącznie z danymi, przeedytuj odpowiedni fragment dotyczący interesującego Cię pola, usuń bazę, utwórz bazę na podstawie skryptu.
No super zwłaszcza jak baza ma klika giga .
Grzegorz D.

Grzegorz D. PL/SQL Developer

Temat: PostgreSQL - zadeklarowany typ

Pomysł z usuwaniem całej bazy raczej nietrafiony :D

W Oraclu, jeżeli zmieniasz coś od czego zależy np procedura (operacją ddl), to procedura ta ustawia się w stan "INVALID", jednak zwykła rekompilacja pomaga.
Możliwe jest również doczepienie "OR REPLACE" do polecenia CREATE.

Ostatecznie wychodzi więc coś w stylu:

CREATE OR REPLACE TYPE nazwa_typu AS ...
ALTER FUNCTION/PROCEDURE nazwa_funkcji/procedury COMPILE

konto usunięte

Temat: PostgreSQL - zadeklarowany typ

CREATE OR REPLACE w przypadku funkcji działa.. ale w przypadku typu chyba jednak nie.
Grzegorz D.

Grzegorz D. PL/SQL Developer

Temat: PostgreSQL - zadeklarowany typ

Wojtek Stępień:
CREATE OR REPLACE w przypadku funkcji działa.. ale w przypadku typu chyba jednak nie.

To jest skrócona wersja DROP i CREATE.
Więc:


DROP TYPE nazwa_typu
CREATE TYPE nazwa_typu AS ...

konto usunięte

Temat: PostgreSQL - zadeklarowany typ

Tomek P.:

No super zwłaszcza jak baza ma klika giga .

A skąd mam wiedzieć ile zajmuje baza? Nikt tego nie napisał :P

Jakkolwiek trywialna i łopatologiczna by sugerowana przeze mnie metoda nie była, sprowadza cały proces do czterech poleceń sql i edycji jednego pliku. I, jako jedyny, podałem konkretne rozwiązanie problemu. A że w niektórych sytuacjach nie można go wykorzystać...

Wojtek prosi o radę, dostaje ją, a czy może i chce za nią pójść - to już jego sprawa;)

konto usunięte

Temat: PostgreSQL - zadeklarowany typ

Ja generalnie wiem jak to zrobić myślałem tylko , że może jest to ukryte gdzieś w jakiś sposób :) i ja o tym nie wiem. Oczywiście najprostszym rozwiązaniem jest DROP i CREATE z tym , że DROP kaskadowy co za tym idzie polecą funkcje, które zwracają ten typ. Samego DROP się nie da zrobić właśnie z tego powodu.

Następna dyskusja:

zapytanie w PostgreSQL




Wyślij zaproszenie do