Recentemente ho trovato una stranezza. Quello che segue è SQL valida:Cosa fa l'output_expression per "DELETE FROM table"?
DELETE FROM customer *;
La documentazione per PostgreSQL DELETE dice la stella è un possibile valore per il output_expression
:
Un'espressione da calcolare e restituito dal comando Elimina dopo ogni riga è cancellato. L'espressione può utilizzare qualsiasi nome di colonna della tabella o delle tabelle elencate in USING. Scrivi * per restituire tutte le colonne.
Ho provato con e senza la stella e non vedo la differenza. In effetti, posso mettere qualsiasi parola singola dopo il nome del tavolo ed è accettata. Non deve nemmeno essere un nome di colonna reale. Non viene restituito altro extra.
db=> DELETE FROM customer wheeeeeee;
DELETE 19
Quindi cosa fa e cosa posso usare?
Domanda also posted on the PostgreSQL mailing list.
Perché non provarlo e scoprirlo? –
L'ho fatto. Elimina solo le righe e non restituisce nulla di speciale. –
Sembra che tu abbia mancato il 'RETURNING' che è una parte non opzionale della grammatica che precede' output_expression' Suppongo che '*' sia trattato come un alias (come per 'wheeeeeee') senza quello. –