1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
# name: test/sql/alter/default/test_set_default.test
# description: Test ALTER TABLE SET DEFAULT
# group: [default]
statement ok
CREATE TABLE test(i INTEGER, j INTEGER)
statement ok
INSERT INTO test VALUES (1, 1), (2, 2)
statement ok
ALTER TABLE test ALTER j SET DEFAULT 3
statement ok
INSERT INTO test (i) VALUES (3)
query II
SELECT * FROM test
----
1
1
2
2
3
3
statement ok
ALTER TABLE test ALTER COLUMN j DROP DEFAULT
statement ok
INSERT INTO test (i) VALUES (4)
query II
SELECT * FROM test
----
1
1
2
2
3
3
4
NULL
statement ok
CREATE SEQUENCE seq
statement ok
ALTER TABLE test ALTER j SET DEFAULT nextval('seq')
statement ok
INSERT INTO test (i) VALUES (5), (6)
query II
SELECT * FROM test
----
1
1
2
2
3
3
4
NULL
5
1
6
2
# set default on a table with constraints
statement ok
CREATE TABLE constrainty(i INTEGER PRIMARY KEY, j INTEGER);
statement ok
ALTER TABLE constrainty ALTER j SET DEFAULT 3
statement ok
INSERT INTO constrainty (i) VALUES (2)
query II
SELECT * FROM constrainty
----
2 3
# fail when column does not exist
statement error
ALTER TABLE test ALTER blabla SET DEFAULT 3
----
statement error
ALTER TABLE test ALTER blabla DROP DEFAULT
----
# test that SET DEFAULT preserves temporary flag
statement ok
CREATE TEMPORARY TABLE temp_default_test(x INTEGER DEFAULT 1)
query TTI
SELECT table_name, database_name, temporary FROM duckdb_tables() WHERE table_name='temp_default_test'
----
temp_default_test temp true
statement ok
ALTER TABLE temp_default_test ALTER x SET DEFAULT 5
query TTI
SELECT table_name, database_name, temporary FROM duckdb_tables() WHERE table_name='temp_default_test'
----
temp_default_test temp true
|