Stworzyłem tabelę w postgreSQL. Chcę spojrzeć na instrukcję SQL użytą do utworzenia tabeli, ale nie mogę jej rozgryźć.
Jak uzyskać instrukcję create table
SQL dla istniejącej tabeli w Postgres za pomocą wiersza polecenia lub instrukcji SQL?
postgresql
Radża
źródło
źródło
pg_dump mydb -t mytable --schema-only
.aschema
rzeczywistą nazwą schematu tabeli, którą chcesz zrzucić. Zastąpatable
rzeczywistą nazwą tabeli, którą chcesz zrzucić.pg_dump mydb -t '"TableName"' --schema-only
- w przeciwnym razie pg_dump nie rozpozna nazwy tabeli.Moim rozwiązaniem jest zalogowanie się do bazy danych postgres przy użyciu psql z opcją -E w następujący sposób:
W psql uruchom następujące polecenia, aby zobaczyć sql, którego Postgres używa do wygenerowania
instrukcji tabela opisu:
W oparciu o sql powtórzone po uruchomieniu tych komend opisujących, byłem w stanie
zestawić następującą funkcję plpgsql:
Oto użycie funkcji:
A oto instrukcja drop, jeśli nie chcesz, aby ta funkcja trwała trwale:
źródło
NULL
dla mnie ... A jak obsługiwany jest schemat? Czy powinien zwracać instrukcje CREATE dla tabel o określonej nazwie ze wszystkich schematów?Wygeneruj instrukcję create table dla tabeli w postgresql z wiersza poleceń Linux:
Ta instrukcja wyświetla dla mnie instrukcję tworzenia instrukcji sql:
Wyjaśnienie:
pg_dump pomaga nam uzyskać informacje o samej bazie danych.
-U
oznacza nazwę użytkownika. Mój użytkownik pgadmin nie ma ustawionego hasła, więc nie muszę go wpisywać. Te-t
środki opcja określić dla jednej tabeli.--schema-only
oznacza drukowanie tylko danych o tabeli, a nie danych w tabeli. Oto dokładne polecenie, którego używam:źródło
Jeśli chcesz znaleźć instrukcję create dla tabeli bez użycia pg_dump, to zapytanie może Ci pomóc (zmień 'tablename' na dowolną nazwę tabeli):
wywoływany bezpośrednio z psql, użyteczne jest wykonywanie:
Również funkcja generate_create_table_statement w tym wątku działa bardzo dobrze.
źródło
pg_dump
. przydatne wszystkie te same +1Dean Toader Po prostu świetnie! Zmodyfikowałbym trochę twój kod, aby pokazać wszystkie ograniczenia w tabeli i umożliwić użycie maski wyrażenia regularnego w nazwie tabeli.
Teraz możesz na przykład wykonać następujące zapytanie
co daje takie wyniki:
dla każdej tabeli użytkowników.
źródło
Najłatwiejszą metodą, jaką mogę wymyślić, jest zainstalowanie pgAdmin 3 ( tutaj ) i użycie go do przeglądania bazy danych. Automatycznie wygeneruje zapytanie, które utworzy tabelę, o której mowa.
źródło
Jeśli chcesz to zrobić dla różnych tabel jednocześnie, chciałeś użyć przełącznika -t wiele razy (zajęło mi trochę czasu, aby dowiedzieć się, dlaczego lista rozdzielana przecinkami nie działa). Przydatne może być także wysyłanie wyników do pliku wyjściowego lub potoku do serwera Postgres na innym komputerze
źródło
Jeszcze więcej modyfikacji w oparciu o odpowiedź @vkkeeper. Dodano możliwość zapytania do tabeli z określonego schematu.
źródło
Oto nieco ulepszona wersja shekwi „s zapytań .
Generuje ograniczenie klucza podstawowego i jest w stanie obsłużyć tabele tymczasowe:
Użyj
table_name
parametru, aby określić nazwę tabeli.źródło
źródło
Ta odmiana działa dla mnie:
pg_dump -U user_viktor -h localhost unit_test_database -t floorplanpreferences_table --schema-only
Ponadto, jeśli używasz schematów, oczywiście musisz również to określić:
pg_dump -U user_viktor -h localhost unit_test_database -t "949766e0-e81e-11e3-b325-1cc1de32fcb6".floorplanpreferences_table --schema-only
Otrzymasz wyjście, którego możesz użyć do ponownego utworzenia tabeli, po prostu uruchom to wyjście w psql.
źródło
Proste rozwiązanie w czystym pojedynczym SQL. Masz pomysł, możesz rozszerzyć go na więcej atrybutów, które chcesz pokazać.
Wynik:
źródło
Oto pojedyncza instrukcja, która wygeneruje DDL dla pojedynczej tabeli w określonym schemacie, łącznie z ograniczeniami.
źródło
Podobnie jak inne wspomniane odpowiedzi, nie ma wbudowanej funkcji, która to robi.
Oto funkcja, która próbuje uzyskać wszystkie informacje, które byłyby potrzebne do zreplikowania tabeli - lub do porównania wdrożonych i zarejestrowanych w ddl.
Ta funkcja generuje:
przykład
produkuje
źródło
W bazie danych pgadminIII >> schematy >> tabele >> kliknij prawym przyciskiem myszy „Twoja tabela” >> skrypty >> „Wybierz dowolny (Utwórz, Wstaw, Aktualizuj, Usuń ...)”
źródło
Oto zapytanie z pewnymi zmianami,
źródło