Utwórz tabelę tymczasową w PostgreSQL

wprowadzenie

podczas pracy z dużymi tabelami w PostgreSQL może się okazać, że musisz wielokrotnie wchodzić w interakcje z określonym podzbiorem wierszy w tabeli. Zamiast wielokrotnego filtrowania tabeli w celu uzyskania tego podzbioru danych, bardziej wydajne jest pobranie tych wierszy raz i zapisanie ich w tymczasowej tabeli. Ten samouczek nauczy Cię, jak utworzyć tabelę tymczasową, a później ją usunąć, gdy skończysz.

wymagania wstępne

jeśli chcesz śledzić przykłady PostgreSQL w tym samouczku, upewnij się, że masz zainstalowany i skonfigurowany serwer PostgreSQL na swoim komputerze. Usługa musi działać w tle.

użytkownicy Linuksa i Windows mogą pobrać PostgreSQL tutaj.

co to jest tymczasowa tabela PostgreSQL?

tymczasowe tabele istnieją w ich własnym unikalnym schemacie, więc nie można przypisać nazwy schematu podczas tworzenia tego rodzaju tabeli. Tabela tymczasowa istnieje tylko tak długo, jak długo trwa sesja bazy danych– oznacza to, że PostgreSQL automatycznie usuwa tabelę tymczasową na końcu lub transakcji lub sesji.

przykładowy przypadek użycia tymczasowej tabeli PostgreSQL

tymczasowe tabele są przydatne dla programistów aplikacji i administratorów baz danych, którzy regularnie korzystają z dużych baz danych. Są one szczególnie cenne w sytuacjach, które wymagają wielokrotnego zapytania lub przetwarzania małego podzbioru danych w większej tabeli.

w takich przypadkach możemy przechowywać przefiltrowane dane w tymczasowej tabeli; możemy wtedy używać tej tymczasowej tabeli w kółko bez przechodzenia do rzeczywistej bazy danych. Tabele te znajdują się wewnątrz tempdb, który jest również systemem bazodanowym.

istnieją dwa sposoby tworzenia tymczasowej tabeli. Po pierwsze, możemy użyć klauzuli TEMPORARY w instrukcji CREATE TABLE :

1
2
3
Utwórz tymczasową tabelę your_temp_table_name(
);

alternatywnie możemy użyć klauzuli TEMP :

1
2
3
Utwórz tabelę TEMP your_temp_table_name (
)…
);

tabele tymczasowe są widoczne tylko w ramach sesji, w której zostały utworzone; żadne inne sesje nie będą mogły ich przeglądać.

Tworzenie tymczasowej tabeli przykład

aby utworzyć tymczasową tabelę, najpierw musimy połączyć się z naszym serwerem PostgreSQL za pomocą polecenia psql. Następnie utworzymy bazę danych o nazwie dbsandbox.

możemy to osiągnąć za pomocą następującego polecenia:

1
2
3
4
postgres= # CREATE DATABASE sandboxdb;
CREATE DATABASE
postgres=# \C sandboxdb;
jesteś teraz połączony z bazą danych ” sandboxdb „jako użytkownik”teamsolo”.

Po utworzeniu bazy danych nadszedł czas, aby utworzyć naszą tymczasową tabelę za pomocą następującego polecenia:

1
2
sandboxdb= # CREATE TEMP TABLE temptbl (A INT);
Utwórz tabelę

za pomocą tej instrukcji stworzyliśmy naszą TEMP tabelę o nazwie temptbl w bazie danych sandboxdb.

aby sprawdzić, czy tabela została pomyślnie utworzona, możemy użyć polecenia SELECT :

1
wybierz * z temptbl;

wynik naszego SELECT powinien wyglądać następująco:

1
2
3
c

(0 wiersze)

wcześniej w tej sekcji wspomnieliśmy, że tymczasowa tabela jest widoczna tylko dla bieżącej sesji, w której została utworzona. Przetestujmy i zobaczmy, czy to prawda, tworząc kolejną sesję w PostgreSQL. W tej nowej sesji spróbujemy połączyć się z temptable. Aby to zrobić, najpierw Zakończ bieżące połączenie za pomocą polecenia \q, a następnie spróbuj ponownie połączyć się, wykonując poprzednie kroki. Przykład tego procesu jest pokazany poniżej:

1
2
3
4
5
postgres= # \C sandboxdb;
jesteś teraz podłączony do bazy danych „sandboxdb” jako użytkownik „teamsolo”.
sandboxdb= # SELECT * FROM temptbl;
błąd: relacja „temptbl” nie istnieje
linia 1: SELECT * FROM temptbl;

zauważ, że otrzymaliśmy błąd, gdy próbowaliśmy wykonać operację SELECTprzeciwko tymczasowej tabeli temptbl. Dzieje się tak, ponieważ temptbl został natychmiast odrzucony przez PostgreSQL, gdy tylko wykonaliśmy polecenie \q i zakończyliśmy daną sesję.

usuwanie tabeli tymczasowej przykład

w poprzedniej sekcji dowiedzieliśmy się, jak utworzyć tabelę tymczasową. Porozmawiajmy teraz o tym, jak usunąć lub upuścić tymczasową tabelę.

Poniżej znajduje się składnia używana do upuszczania tymczasowej tabeli:

1
DROP TABLE your_temp_table_name;

zauważ, że instrukcja DROP TABLE nie ma klauzul takich jak TEMPORARY i TEMP, w przeciwieństwie do instrukcji CREATE TABLE.

powiedzmy, że chcieliśmy upuścić temptbl podczas jego sesji – możemy to zrobić za pomocą następującego polecenia:

1
sandboxdb= # DROP TABLE temptbl;

wniosek

nie ma wątpliwości, że tymczasowe tabele mogą pomóc w optymalizacji interakcji z bazą danych, umożliwiając przechowywanie mniejszego podzbioru wierszy z większej tabeli zamiast filtrowania tych samych danych w kółko. W tym samouczku wyjaśniliśmy, jak utworzyć tabelę tymczasową i jak ją upuścić, używając instrukcji CREATE TEMP TABLE i DROP TABLE. Korzystając z przykładów, które udostępniliśmy jako przewodnik, będziesz mógł tworzyć i zarządzać tymczasowymi tabelami dla własnych interakcji z bazą danych.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.