kysely
    Preparing search index...

    Class CreateIndexBuilder<C>

    Type Parameters

    • C = never

    Implements

    Index

    Constructors

    Methods

    • Simply calls the provided function passing this as the only argument. $call returns what the provided function returns.

      Type Parameters

      • T

      Parameters

      • func: (qb: this) => T

      Returns T

    • Adds a column to the index.

      Also see columns for adding multiple columns at once or expression for specifying an arbitrary expression.

      await db.schema
      .createIndex('person_first_name_and_age_index')
      .on('person')
      .column('first_name')
      .column('age desc')
      .execute()

      The generated SQL (PostgreSQL):

      create index "person_first_name_and_age_index" on "person" ("first_name", "age" desc)
      

      Type Parameters

      • CL extends string

      Parameters

      • column: OrderedColumnName<CL>

      Returns CreateIndexBuilder<C | ExtractColumnNameFromOrderedColumnName<CL>>

    • Specifies a list of columns for the index.

      Also see column for adding a single column or expression for specifying an arbitrary expression.

      await db.schema
      .createIndex('person_first_name_and_age_index')
      .on('person')
      .columns(['first_name', 'age desc'])
      .execute()

      The generated SQL (PostgreSQL):

      create index "person_first_name_and_age_index" on "person" ("first_name", "age" desc)
      

      Type Parameters

      • CL extends string

      Parameters

      • columns: OrderedColumnName<CL>[]

      Returns CreateIndexBuilder<C | ExtractColumnNameFromOrderedColumnName<CL>>

    • Specifies an arbitrary expression for the index.

      importsql } from 'kysely'

      await db.schema
      .createIndex('person_first_name_index')
      .on('person')
      .expression(sql`first_name COLLATE "fi_FI"`)
      .execute()

      The generated SQL (PostgreSQL):

      create index "person_first_name_index" on "person" (first_name COLLATE "fi_FI")
      

      Parameters

      Returns CreateIndexBuilder<C>

    • Adds nulls not distinct specifier to index. This only works on some dialects like PostgreSQL.

      db.schema.createIndex('person_first_name_index')
      .on('person')
      .column('first_name')
      .nullsNotDistinct()
      .execute()

      The generated SQL (PostgreSQL):

      create index "person_first_name_index"
      on "test" ("first_name")
      nulls not distinct;

      Returns CreateIndexBuilder<C>

    • Adds a where clause to the query. This Effectively turns the index partial.

      import { sql } from 'kysely'

      await db.schema
      .createIndex('orders_unbilled_index')
      .on('orders')
      .column('order_nr')
      .where(sql.ref('billed'), 'is not', true)
      .where('order_nr', 'like', '123%')

      The generated SQL (PostgreSQL):

      create index "orders_unbilled_index" on "orders" ("order_nr") where "billed" is not true and "order_nr" like '123%'
      

      Column names specified in column or columns are known at compile-time and can be referred to in the current query and context.

      Sometimes you may want to refer to columns that exist in the table but are not part of the current index. In that case you can refer to them using sql expressions.

      Parameters are always sent as literals due to database restrictions.

      Parameters

      Returns CreateIndexBuilder<C>

    • Adds a where clause to the query. This Effectively turns the index partial.

      import { sql } from 'kysely'

      await db.schema
      .createIndex('orders_unbilled_index')
      .on('orders')
      .column('order_nr')
      .where(sql.ref('billed'), 'is not', true)
      .where('order_nr', 'like', '123%')

      The generated SQL (PostgreSQL):

      create index "orders_unbilled_index" on "orders" ("order_nr") where "billed" is not true and "order_nr" like '123%'
      

      Column names specified in column or columns are known at compile-time and can be referred to in the current query and context.

      Sometimes you may want to refer to columns that exist in the table but are not part of the current index. In that case you can refer to them using sql expressions.

      Parameters are always sent as literals due to database restrictions.

      Parameters

      Returns CreateIndexBuilder<C>

    • Adds a where clause to the query. This Effectively turns the index partial.

      import { sql } from 'kysely'

      await db.schema
      .createIndex('orders_unbilled_index')
      .on('orders')
      .column('order_nr')
      .where(sql.ref('billed'), 'is not', true)
      .where('order_nr', 'like', '123%')

      The generated SQL (PostgreSQL):

      create index "orders_unbilled_index" on "orders" ("order_nr") where "billed" is not true and "order_nr" like '123%'
      

      Column names specified in column or columns are known at compile-time and can be referred to in the current query and context.

      Sometimes you may want to refer to columns that exist in the table but are not part of the current index. In that case you can refer to them using sql expressions.

      Parameters are always sent as literals due to database restrictions.

      Parameters

      Returns CreateIndexBuilder<C>