Files
chaisql/sqltests/INSERT/insert_select.sql
T
Asdine El Hrychy 613ca304f4 remove rowid
2025-09-07 23:29:43 +08:00

77 lines
1.3 KiB
SQL

-- setup:
CREATE TABLE foo(a INT PRIMARY KEY, b INT, c INT, d INT, e INT);
CREATE TABLE bar(a INT PRIMARY KEY, b INT);
INSERT INTO bar (a, b) VALUES (1, 10);
-- test: same table
INSERT INTO foo SELECT * FROM foo;
-- error:
-- test: No columns / No projection
INSERT INTO foo SELECT * FROM bar;
SELECT * FROM foo;
/* result:
{
"a":1,
"b":10,
"c":null,
"d":null,
"e":null
}
*/
-- test: No columns / Projection
INSERT INTO foo SELECT a FROM bar;
SELECT * FROM foo;
/* result:
{
"a":1,
"b":null,
"c":null,
"d":null,
"e":null
}
*/
-- test: With columns / No Projection
INSERT INTO foo (a, b) SELECT * FROM bar;
SELECT * FROM foo;
/* result:
{
"a":1,
"b":10,
"c":null,
"d":null,
"e":null
}
*/
-- test: With columns / Projection
INSERT INTO foo (a, c) SELECT b, a FROM bar;
SELECT * FROM foo;
/* result:
{
"a":10,
"b":null,
"c":1,
"d":null,
"e":null
}
*/
-- test: Too many columns / No Projection
INSERT INTO foo (c) SELECT * FROM bar;
-- error:
-- test: Too many columns / Projection
INSERT INTO foo (c, d) SELECT a, b, c FROM bar;
-- error:
-- test: Too few columns / No Projection
INSERT INTO foo (c, d, e) SELECT * FROM bar;
-- error:
-- test: Too few columns / Projection
INSERT INTO foo (c, d) SELECT a FROM bar;
-- error: