mirror of
https://github.com/chaisql/chai.git
synced 2025-10-30 18:36:27 +08:00
53 lines
1.1 KiB
SQL
53 lines
1.1 KiB
SQL
-- setup:
|
|
CREATE TABLE foo;
|
|
CREATE TABLE bar;
|
|
INSERT INTO bar (a, b) VALUES (1, 10);
|
|
|
|
-- test: same table
|
|
INSERT INTO foo SELECT * FROM foo;
|
|
-- error:
|
|
|
|
-- test: No fields / No projection
|
|
INSERT INTO foo SELECT * FROM bar;
|
|
SELECT pk(), * FROM foo;
|
|
/* result:
|
|
{"pk()":1, "a":1.0, "b":10.0}
|
|
*/
|
|
|
|
-- test: No fields / Projection
|
|
INSERT INTO foo SELECT a FROM bar;
|
|
SELECT pk(), * FROM foo;
|
|
/* result:
|
|
{"pk()":1, "a":1.0}
|
|
*/
|
|
|
|
-- test: With fields / No Projection
|
|
INSERT INTO foo (a, b) SELECT * FROM bar;
|
|
SELECT pk(), * FROM foo;
|
|
/* result:
|
|
{"pk()":1, "a":1.0, "b":10.0}
|
|
*/
|
|
|
|
-- test: With fields / Projection
|
|
INSERT INTO foo (c, d) SELECT a, b FROM bar;
|
|
SELECT pk(), * FROM foo;
|
|
/* result:
|
|
{"pk()":1, "c":1.0, "d":10.0}
|
|
*/
|
|
|
|
-- test: Too many fields / No Projection
|
|
INSERT INTO foo (c) SELECT * FROM bar;
|
|
-- error:
|
|
|
|
-- test: Too many fields / Projection
|
|
INSERT INTO foo (c, d) SELECT a, b, c FROM bar;
|
|
-- error:
|
|
|
|
-- test: Too few fields / No Projection
|
|
INSERT INTO foo (c, d, e) SELECT * FROM bar;
|
|
-- error:
|
|
|
|
-- test: Too few fields / Projection
|
|
INSERT INTO foo (c, d) SELECT a FROM bar`;
|
|
-- error:
|