PostgreSQL TA BORT rader från markering
⚡ Smart sammanfattning
PostgreSQL DELETE tar bort en eller flera rader från en tabell, och om den paras ihop med en WHERE-klausul riktas endast in sig på de poster som matchar ett villkor, medan utelämnande av WHERE rensar alla rader i tabellen.

Ta bort fråga in PostgreSQL
Ocuco-landskapet DELETE-sats in PostgreSQL används för att ta bort en eller flera poster från en tabell. För att ta bort endast valda rader från en tabell, PostgreSQL låter dig kombinera DELETE-satsen med WHERE-klausulen; annars raderas alla poster i tabellen.
PostgreSQL Ta bort frågesyntax
DELETE-satsen kan definieras med hjälp av syntaxen nedan:
[ WITH [ RECURSIVE ] with-query [, ...] ] DELETE FROM [ ONLY ] table-name [ * ] [ [ AS ] alias ] [ USING using-list ] [ WHERE condition(s) | WHERE CURRENT OF cursor-name] [ RETURNING * | output-expression [ [ AS ] output-name] [, ...] ]
Driftparametrar
Följande parametrar är tillgängliga:
- med-förfrågan: WITH-klausulen låter dig referera till en eller flera delfrågor med namn inuti DELETE-frågan.
- tabell-namn: namnet på tabellen från vilken poster ska raderas.
- alias: en ersättning för namnet på måltabellen.
- using-listtabelluttryck som tillåter att kolumner från andra tabeller används i WHERE-klausulen.
- tillstånd/tillståndValfritt. Dessa är villkoren som måste vara uppfyllda för att poster ska kunna tas bort. Om detta avsnitt inte anges kommer alla poster med tabellnamn att tas bort.
- markörnamn: markören som ska användas i WHERE CURRENT OF-villkoret. Den sista raden som hämtades av denna markör kommer att raderas.
- output-uttryck: uttrycket som ska bearbetas och returneras av DELETE-satsen efter att varje rad har tagits bort.
- output-namn: namnet som ska användas för den returnerade kolumnen.
Observera att eftersom DELETE-satsen tar bort hela raden behöver du inte ange kolumnnamnen.
PostgreSQL Ta bort fråga med ett villkor
DELETE-satsen kan användas med ett enda villkor, vilket anges med WHERE-satsen. Betrakta pristabellen med följande data:
Pris:
Låt oss ta bort posten med id 4:
DELETE FROM Price WHERE id = 4;
Ovanstående kommando raderar posterna där id:t är 4. Låt oss bekräfta om raderingen lyckades:
Raden med id 4 har tagits bort.
Ta bort fråga med två villkor
Ocuco-landskapet PostgreSQL DELETE-satsen kan också ta två villkor. De två villkoren ska kopplas samman med hjälp av AND-operatorn. Vi kommer att använda följande tabell:
Pris:
Tänk på exemplet nedan:
DELETE FROM Price WHERE id = 3 AND price = 300;
I kommandot ovan tar vi bort raden där id:t är 3 och priset är 300. Vi kan nu fråga tabellen:
SELECT * FROM Price;
Detta returnerar följande:
Posten med id 3 och pris 300 raderades.
PostgreSQL Ta bort fråga med EXISTS-villkoret
Med EXISTS villkor kan du göra DELETE mer komplex. Ibland kan det finnas ett behov av att ta bort poster i en tabell baserat på poster i en annan tabell.
Eftersom FROM-klausulen inte tillåter dig att lista poster från mer än en tabell när du utför en borttagning, blir EXISTS-klausulen mycket användbar. Vi har följande två tabeller:
Bok:
Pris:
Vi kan sedan köra följande fråga:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Kommandot tar bort rader från boktabellen som har ett matchande ID i pristabellen med ett pris under 250.
Boktabellen ser nu ut som följer:
Posten med id 1 raderades.
Hur man tar bort en rad i PostgreSQL med pgAdmin
Samma borttagningsfrågor kan också köras visuellt via pgAdmin-gränssnittet, enligt stegen nedan:
Med ett villkor
Steg 1) Logga in på ditt pgAdmin-konto. Öppna pgAdmin och logga in på ditt konto med dina inloggningsuppgifter.
Steg 2) Skapa en demodatabas.
- Klicka på Databaser i navigeringsfältet till vänster.
- Klicka på Demo.
Steg 3) Skriv in frågan nedan i frågeredigeraren:
DELETE FROM Price WHERE id = 4;
Steg 4) Klicka på knappen Kör.
Steg 5) Låt oss kontrollera om raden har raderats:
Med två villkor
Steg 1) Logga in på ditt pgAdmin-konto.
Steg 2)
- Klicka på Databaser i navigeringsfältet till vänster.
- Klicka på Demo.
Steg 3) Skriv in frågan i frågeredigeraren:
DELETE FROM Price WHERE id = 3 AND price = 300;
Steg 4) Klicka på knappen Kör.
Steg 5) Låt oss kontrollera om raderingen lyckades:
Använder EXISTS Condition
Steg 1) Logga in på ditt pgAdmin-konto.
Steg 2)
- Klicka på Databaser i navigeringsfältet till vänster.
- Klicka på Demo.
Steg 3) Skriv in frågan i frågeredigeraren:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Steg 4) Klicka på knappen Kör.
Steg 5) Låt oss kontrollera om raderingen lyckades:
Ladda ner den databas som används i denna handledning
















