mirror of
https://github.com/chaisql/chai.git
synced 2025-09-26 19:51:21 +08:00
80 lines
1.8 KiB
SQL
80 lines
1.8 KiB
SQL
-- setup:
|
|
CREATE TABLE test (a int primary key);
|
|
|
|
-- test: named index
|
|
CREATE INDEX test_a_idx ON test(a);
|
|
SELECT name, owner_table_name AS table_name, sql FROM __chai_catalog WHERE type = 'index';
|
|
/* result:
|
|
{
|
|
"name": 'test_a_idx',
|
|
"table_name": 'test',
|
|
"sql": 'CREATE INDEX test_a_idx ON test (a)'
|
|
}
|
|
*/
|
|
|
|
-- test: named unique index
|
|
CREATE UNIQUE INDEX test_a_idx ON test(a);
|
|
SELECT name, owner_table_name AS table_name, sql FROM __chai_catalog WHERE type = 'index';
|
|
/* result:
|
|
{
|
|
"name": 'test_a_idx',
|
|
"table_name": 'test',
|
|
"sql": 'CREATE UNIQUE INDEX test_a_idx ON test (a)',
|
|
}
|
|
*/
|
|
|
|
-- test: conflict
|
|
CREATE INDEX test_a_idx ON test(a);
|
|
CREATE INDEX test_a_idx ON test(a);
|
|
-- error:
|
|
|
|
-- test: conflict with UNIQUE
|
|
CREATE INDEX test_a_idx ON test(a);
|
|
CREATE UNIQUE INDEX test_a_idx ON test(a);
|
|
-- error:
|
|
|
|
-- test: IF NOT EXISTS
|
|
CREATE INDEX test_a_idx ON test(a);
|
|
CREATE INDEX IF NOT EXISTS test_a_idx ON test(a);
|
|
SELECT name, owner_table_name AS table_name, sql FROM __chai_catalog WHERE type = 'index';
|
|
/* result:
|
|
{
|
|
"name": 'test_a_idx',
|
|
"table_name": 'test',
|
|
"sql": 'CREATE INDEX test_a_idx ON test (a)'
|
|
}
|
|
*/
|
|
|
|
-- test: generated name
|
|
CREATE INDEX ON test(a);
|
|
CREATE INDEX ON test(a);
|
|
CREATE INDEX test_a_idx2 ON test(a);
|
|
CREATE INDEX ON test(a);
|
|
SELECT name, owner_table_name AS table_name, sql FROM __chai_catalog WHERE type = 'index' ORDER BY name;
|
|
/* result:
|
|
{
|
|
"name": 'test_a_idx',
|
|
"table_name": 'test',
|
|
"sql": 'CREATE INDEX test_a_idx ON test (a)'
|
|
}
|
|
{
|
|
"name": 'test_a_idx1',
|
|
"table_name": 'test',
|
|
"sql": 'CREATE INDEX test_a_idx1 ON test (a)'
|
|
}
|
|
{
|
|
"name": 'test_a_idx2',
|
|
"table_name": 'test',
|
|
"sql": 'CREATE INDEX test_a_idx2 ON test (a)'
|
|
}
|
|
{
|
|
"name": 'test_a_idx3',
|
|
"table_name": 'test',
|
|
"sql": 'CREATE INDEX test_a_idx3 ON test (a)'
|
|
}
|
|
*/
|
|
|
|
-- test: generated name with IF NOT EXISTS
|
|
CREATE INDEX IF NOT EXISTS ON test(a);
|
|
-- error:
|