SELECT * INTOTABLE sitmp1 FROM onek WHERE onek.unique1 < 2;
DROPTABLE sitmp1;
SELECT * INTOTABLE sitmp1 FROM onek2 WHERE onek2.unique1 < 2;
DROPTABLE sitmp1;
-- -- SELECT INTO and INSERT permission, if owner is not allowed to insert. -- CREATESCHEMA selinto_schema; CREATE USER regress_selinto_user; ALTERDEFAULT PRIVILEGES FOR ROLE regress_selinto_user REVOKEINSERTON TABLES FROM regress_selinto_user; GRANTALLONSCHEMA selinto_schema TO public;
SET SESSION AUTHORIZATION regress_selinto_user; -- WITH DATA, passes. CREATETABLE selinto_schema.tbl_withdata1 (a) ASSELECT generate_series(1,3) WITH DATA; INSERTINTO selinto_schema.tbl_withdata1 VALUES (4); EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF, BUFFERS OFF) CREATETABLE selinto_schema.tbl_withdata2 (a) AS SELECT generate_series(1,3) WITH DATA; -- WITH NO DATA, passes. CREATETABLE selinto_schema.tbl_nodata1 (a) AS SELECT generate_series(1,3) WITH NO DATA; EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF, BUFFERS OFF) CREATETABLE selinto_schema.tbl_nodata2 (a) AS SELECT generate_series(1,3) WITH NO DATA; -- EXECUTE and WITH DATA, passes.
PREPARE data_sel ASSELECT generate_series(1,3); CREATETABLE selinto_schema.tbl_withdata3 (a) AS
EXECUTE data_sel WITH DATA; EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF, BUFFERS OFF) CREATETABLE selinto_schema.tbl_withdata4 (a) AS
EXECUTE data_sel WITH DATA; -- EXECUTE and WITH NO DATA, passes. CREATETABLE selinto_schema.tbl_nodata3 (a) AS
EXECUTE data_sel WITH NO DATA; EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF, BUFFERS OFF) CREATETABLE selinto_schema.tbl_nodata4 (a) AS
EXECUTE data_sel WITH NO DATA;
RESET SESSION AUTHORIZATION;
ALTERDEFAULT PRIVILEGES FOR ROLE regress_selinto_user GRANTINSERTON TABLES TO regress_selinto_user;
SET SESSION AUTHORIZATION regress_selinto_user;
RESET SESSION AUTHORIZATION;
DEALLOCATE data_sel; DROPSCHEMA selinto_schema CASCADE; DROP USER regress_selinto_user;
-- Tests for WITH NO DATA and column name consistency CREATETABLE ctas_base (i int, j int); INSERTINTO ctas_base VALUES (1, 2); CREATETABLE ctas_nodata (ii, jj, kk) ASSELECT i, j FROM ctas_base; -- Error CREATETABLE ctas_nodata (ii, jj, kk) ASSELECT i, j FROM ctas_base WITH NO DATA; -- Error CREATETABLE ctas_nodata (ii, jj) ASSELECT i, j FROM ctas_base; -- OK CREATETABLE ctas_nodata_2 (ii, jj) ASSELECT i, j FROM ctas_base WITH NO DATA; -- OK CREATETABLE ctas_nodata_3 (ii) ASSELECT i, j FROM ctas_base; -- OK CREATETABLE ctas_nodata_4 (ii) ASSELECT i, j FROM ctas_base WITH NO DATA; -- OK SELECT * FROM ctas_nodata; SELECT * FROM ctas_nodata_2; SELECT * FROM ctas_nodata_3; SELECT * FROM ctas_nodata_4; DROPTABLE ctas_base; DROPTABLE ctas_nodata; DROPTABLE ctas_nodata_2; DROPTABLE ctas_nodata_3; DROPTABLE ctas_nodata_4;
-- -- CREATE TABLE AS/SELECT INTO as last command in a SQL function -- have been known to cause problems -- CREATE FUNCTION make_table() RETURNS VOID AS $$ CREATETABLE created_table ASSELECT * FROM int8_tbl;
$$ LANGUAGE SQL;
SELECT make_table();
SELECT * FROM created_table;
-- Try EXPLAIN ANALYZE SELECT INTO and EXPLAIN ANALYZE CREATE TABLE AS -- WITH NO DATA, but hide the outputs since they won't be stable.
DO $$
BEGIN
EXECUTE 'EXPLAIN ANALYZE SELECT * INTO TABLE easi FROM int8_tbl';
EXECUTE 'EXPLAIN ANALYZE CREATE TABLE easi2 AS SELECT * FROM int8_tbl WITH NO DATA';
END$$;
DROPTABLE created_table; DROPTABLE easi, easi2;
-- -- Disallowed uses of SELECT ... INTO. All should fail -- DECLARE foo CURSORFORSELECT1INTO int4_tbl;
COPY (SELECT1INTO frak UNIONSELECT2) TO'blob'; SELECT * FROM (SELECT1INTO f) bar; CREATE VIEW foo ASSELECT1INTO int4_tbl; INSERTINTO int4_tbl SELECT1INTO f;
-- Test CREATE TABLE AS ... IF NOT EXISTS CREATETABLE ctas_ine_tbl ASSELECT1; CREATETABLE ctas_ine_tbl ASSELECT1 / 0; -- error CREATETABLEIFNOTEXISTS ctas_ine_tbl ASSELECT1 / 0; -- ok CREATETABLE ctas_ine_tbl ASSELECT1 / 0WITH NO DATA; -- error CREATETABLEIFNOTEXISTS ctas_ine_tbl ASSELECT1 / 0WITH NO DATA; -- ok EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF) CREATETABLE ctas_ine_tbl ASSELECT1 / 0; -- error EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF) CREATETABLEIFNOTEXISTS ctas_ine_tbl ASSELECT1 / 0; -- ok EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF) CREATETABLE ctas_ine_tbl ASSELECT1 / 0WITH NO DATA; -- error EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF) CREATETABLEIFNOTEXISTS ctas_ine_tbl ASSELECT1 / 0WITH NO DATA; -- ok
PREPARE ctas_ine_query ASSELECT1 / 0; EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF) CREATETABLE ctas_ine_tbl AS EXECUTE ctas_ine_query; -- error EXPLAIN (ANALYZE, COSTS OFF, SUMMARY OFF, TIMING OFF) CREATETABLEIFNOTEXISTS ctas_ine_tbl AS EXECUTE ctas_ine_query; -- ok DROPTABLE ctas_ine_tbl;
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.7 Sekunden
(vorverarbeitet am 2026-09-28)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.