delete.out 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. CREATE TABLE delete_test (
  2. id SERIAL PRIMARY KEY,
  3. a INT,
  4. b text
  5. );
  6. INSERT INTO delete_test (a) VALUES (10);
  7. INSERT INTO delete_test (a, b) VALUES (50, repeat('x', 10000));
  8. INSERT INTO delete_test (a) VALUES (100);
  9. -- allow an alias to be specified for DELETE's target table
  10. DELETE FROM delete_test AS dt WHERE dt.a > 75;
  11. -- if an alias is specified, don't allow the original table name
  12. -- to be referenced
  13. DELETE FROM delete_test dt WHERE delete_test.a > 25;
  14. ERROR: invalid reference to FROM-clause entry for table "delete_test"
  15. LINE 1: DELETE FROM delete_test dt WHERE delete_test.a > 25;
  16. ^
  17. HINT: Perhaps you meant to reference the table alias "dt".
  18. SELECT id, a, char_length(b) FROM delete_test;
  19. id | a | char_length
  20. ----+----+-------------
  21. 1 | 10 |
  22. 2 | 50 | 10000
  23. (2 rows)
  24. -- delete a row with a TOASTed value
  25. DELETE FROM delete_test WHERE a > 25;
  26. SELECT id, a, char_length(b) FROM delete_test;
  27. id | a | char_length
  28. ----+----+-------------
  29. 1 | 10 |
  30. (1 row)
  31. DROP TABLE delete_test;