Recientemente encontré una rareza. El siguiente es SQL válida:¿Qué hace la expression_expression para "DELETE FROM table"?
DELETE FROM customer *;
la documentación de PostgreSQL DELETE dice que la estrella es un valor posible para la output_expression
:
Una expresión para ser computada y retornada por el comando DELETE después cada fila esta borrado. La expresión puede usar cualquier nombre de columna de la tabla 0 tabla (s) listadas en USING. Escriba * para devolver todas las columnas.
Lo probé con y sin la estrella y no puedo ver la diferencia. De hecho, puedo poner casi cualquier palabra sola después del nombre de la tabla y es aceptada. Ni siquiera tiene que ser un nombre de columna real. No se devuelve nada extra.
db=> DELETE FROM customer wheeeeeee;
DELETE 19
Entonces, ¿qué hace y para qué podría usarlo?
Pregunta also posted on the PostgreSQL mailing list.
¿Por qué no lo intentas y lo averiguas? –
Lo hice. Simplemente borra las filas y no devuelve nada especial. –
Parece que te perdiste 'RETURNING' que es una parte no opcional de la gramática que precede' output_expression' Supongo que '*' simplemente se trata como un alias (como para 'wheeeeeee') sin eso. –