2016-04-01 11 views
6

Chciałbym zmienić nazwę sekwencji, której używam. Próbowałem te dwie opcje i nie powiodło się:Zmień nazwę sekwencji w postgreSQL

ALTER TABLE PLAYER RENAME id_seq_player TO player_id_seq; 

i

ALTER SEQUENCE id_seq_player RENAME TO player_id_seq; 

Spojrzałem na oficjalnej dokumentacji i stamtąd stworzyłem te dwa SQL, ale żaden z nich nie pracował. W przypadku błędu first solution wystąpił błąd SQL, a wartość second przekroczyła limit czasu.

Oto błąd SQL uzyskać:

ERROR: column "id_seq_player" does not exist 

********** Error ********** 

* AKTUALIZACJA *

Wydaje się druga instrukcja SQL spełnił swoje zadanie. Ponieważ muszę przesłać port, może to był problem z połączeniem lub OpenShift. Ale teraz kilkakrotnie próbowałem go zweryfikować i działa.

ALTER SEQUENCE id_seq_player RENAME TO player_id_seq; /* Works */ 
+0

Czy jesteś właścicielem tej sekwencji? – Mihai

+0

Ja. Korzystam tylko z jednego użytkownika i ten użytkownik utworzył wszystkie tabele z odpowiednimi sekwencjami. Ale sprawdzę dwukrotnie w dziennikach, czy dzieje się coś dziwnego. –

Odpowiedz

9
ALTER SEQUENCE id_seq_player RENAME TO player_id_seq; 

jest poprawna. Możesz również dodać nazwę schematu, aby upewnić się, że zmieniasz poprawną, ale najprawdopodobniej to powinno działać.

Jeśli upłynie limit czasu, być może istnieje inny proces blokujący sekwencję. Czy istnieje sposób, aby wyłączyć wszystkich innych użytkowników bazy danych, czy też jest to zbyt ważne, aby to zrobić?

0

nie wiem wiersza polecenia, ale można go zmienić na pgAdmin

Dodam tylko 1 do mojego sekwencji i zmienić go z powrotem.

enter image description here

+0

Chcę instrukcji SQL, ponieważ mam kilka sekwencji, w których chciałbym zmienić ich nazwy. I nie chcę tego robić ręcznie dla każdego z nich. Używam tylko pgAdmin, ponieważ jest to jedyny sposób, w jaki mogę połączyć się z bazą danych, ponieważ używam Openshift. Ale dzięki, będę o tym pamiętać. –

+0

I SQL przekazane zasadniczo nie zmienia nazwy, ale tworzy nowy. Nie podoba mi się używany SQL. Wiem, że istnieje zmiana nazwy SQL, której mógłbym użyć. –

+0

Nie. PgAdmin pokazuje tworzenie, ale pokazuję ci lewą stronę, gdzie klikam prawym przyciskiem myszy i zmieniam nazwę. –

2

Spróbuj tego:

ALTER TABLE id_seq_player RENAME TO player_id_seq;