| CREATE TABLE delete_test ( |
| id SERIAL PRIMARY KEY, |
| a INT, |
| b text |
| ); |
| INSERT INTO delete_test (a) VALUES (10); |
| INSERT INTO delete_test (a, b) VALUES (50, repeat('x', 10000)); |
| INSERT INTO delete_test (a) VALUES (100); |
| -- allow an alias to be specified for DELETE's target table |
| DELETE FROM delete_test AS dt WHERE dt.a > 75; |
| -- if an alias is specified, don't allow the original table name |
| -- to be referenced |
| DELETE FROM delete_test dt WHERE delete_test.a > 25; |
| ERROR: invalid reference to FROM-clause entry for table "delete_test" |
| LINE 1: DELETE FROM delete_test dt WHERE delete_test.a > 25; |
| ^ |
| HINT: Perhaps you meant to reference the table alias "dt". |
| SELECT id, a, char_length(b) FROM delete_test; |
| id | a | char_length |
| ----+----+------------- |
| 1 | 10 | |
| 2 | 50 | 10000 |
| (2 rows) |
| |
| -- delete a row with a TOASTed value |
| DELETE FROM delete_test WHERE a > 25; |
| SELECT id, a, char_length(b) FROM delete_test; |
| id | a | char_length |
| ----+----+------------- |
| 1 | 10 | |
| (1 row) |
| |
| DROP TABLE delete_test; |