Hoppa till innehållet
Stackship-dokumentation English

PostgreSQLAnvändareMaskinöversatt

Skapa scheman och tabeller

Skapa ett schema eller en tabell i ett PostgreSQL-kluster från portalens Datautforskare — namn, kolumner, typer, nycklar, provkörningen — vem som äger det du skapar, och hur du tar bort det.

Kräver: postgrescluster/dataRead, postgrescluster/schemaRead, postgrescluster/schemaWrite

Scheman och tabeller skapas på klustrets flik Datautforskare, som kräver rollen Database Explorer — se Vem som får använda den. Klustret måste vara igång.

Varje ändring här går till på samma sätt: formuläret skriver SQL:en och visar den under SQL preview, en provkörning prövar den i en transaktion som rullas tillbaka, och först därefter kan du bekräfta den. Ändrar du ett fält efter provkörningen krävs en ny.

Det du skapar tillhör databasens ägare — användaren i klustrets anslutningssträng — så dina program kan använda det direkt, utan att du delar ut rättigheter.

Skapa ett schema

  1. Välj knappen Create schema överst i trädet på fliken Datautforskare.
  2. Fyll i Create schema:
    • Name — gemener, siffror och understreck, som börjar med en bokstav eller ett understreck, högst 63 tecken;
    • Comment (optional) — upp till 1024 tecken;
    • IF NOT EXISTS — hoppa tyst över om ett schema med det namnet redan finns.
  3. Välj Dry run. När den går igenom står det Dry run passed — ready to commit.
  4. Välj Confirm & create. Schemat visas i trädet.

Med SQL, under Query eller med CLI:t:

bash
stsh pg query orders-db "create schema analytics"

Skapa en tabell

  1. Välj Create table på det schema tabellen ska skapas i. Rubriken, Create a new table under schema, låter dig välja ett annat schema.

  2. Ange tabellens Name, med samma regler som för ett schemanamn.

  3. Definiera kolumnerna under Columns. Formuläret börjar med två: id, en bigint-primärnyckel som numrerar sig själv, och created_at, en timestamptz med standardvärdet now(). För varje kolumn:

    • Name — samma regler som ovan, unikt i tabellen;
    • Type — välj en av de vanliga typerna, till exempel text, varchar(255), integer, bigint, numeric(10,2), boolean, uuid, timestamptz eller jsonb, eller välj Custom… och skriv en annan typ, eventuellt med en storlek som (64) eller (10,2);
    • Default — ett SQL-uttryck, till exempel now() eller 'pending'; fältet föreslår ett för typen;
    • Primary — ingår i primärnyckeln. Markera flera kolumner för en nyckel som består av alla;
    • Null — om kolumnen får vara tom. En primärnyckelkolumn får inte det;
    • Auto — kolumnen numrerar sig själv. Bara för smallint, integer och bigint, och inte tillsammans med ett Default.

    Add column lägger till en kolumn; dra en rad för att ändra ordningen.

  4. Slå eventuellt på IF NOT EXISTS och lägg till en Comment (optional).

  5. Välj Review & save för provkörningen, och sedan Confirm & create.

Främmande nycklar, index och unika begränsningar finns inte i formuläret; lägg till dem med SQL under Query när tabellen finns. En tabell vars primärnyckel är en enda kolumn kan redigeras under Browse; se Bläddra i och redigera rader.

Ta bort ett schema eller en tabell

För att ta bort krävs postgrescluster/schemaDrop, som rollen Database Explorer inte innehåller — se Vem som får använda den.

  1. Välj borttagningsknappen på schemat eller tabellen i trädet.
  2. Slå på CASCADE för att också ta bort det som är beroende av det — främmande nycklar, vyer och så vidare. Utan det avvisas borttagningen om något är beroende av det.
  3. Välj Dry run. Resultatet listar objekten som borttagningen skulle ta med sig.
  4. Skriv objektets namn för att bekräfta och välj knappen Drop. Det går inte att ångra, annat än genom att återställa en ögonblicksbild.

Om det avvisas

  • Denied — missing permissions. — resultatet anger behörigheterna du saknar, och vilka av dem som just-in-time-åtkomst skulle kunna ge.
  • Refused — structurally not allowed. — satsen är en som Datautforskaren aldrig kör; se Avvisade satser.
  • Ett fel med ett SQL-tillstånd, till exempel [42P07], kommer från PostgreSQL självt — till exempel finns redan ett objekt med det namnet.