Документация / DBML

Примеры данных

Блок records задаёт примеры данных таблицы. При экспорте в SQL они превращаются в INSERT.

Вне определения таблицы

Table users {
  id int [pk]
  name varchar
  email varchar
}

records users(id, name, email) {
  1, 'Alice', 'alice@example.com'
  2, 'Bob', 'bob@example.com'
}

Внутри таблицы с явным списком столбцов

Table posts {
  id int [pk]
  title varchar
  published boolean

  records (id, title, published) {
    1, 'First Post', true
    2, 'Second Post', false
  }
}

Внутри таблицы без списка столбцов

Значения перечисляются в порядке столбцов таблицы:

Table comments {
  id int [pk]
  user_id int [ref: > users.id]
  post_id int [ref: > posts.id]
  title string

  records {
    1, 2, 1, 'Первый комментарий второго пользователя к первому посту'
  }
}

Типы значений

ТипЗаписьПримеры
Строкив одинарных кавычках, экранирование \''Hello World', 'Escape\'s sequence'
Числацелые или дробные, с кавычками или без42, 3.14, -100, 1.5e10
Логическиеконстанты без учёта регистраtrue, false, 'Y', 'N', 'T', 'F', 1, 0
Nullnull, пустая строка или пустое полеnull, '', , ,
Дата и времяв одинарных кавычках, форматы ISO 8601'2024-01-15 10:30:00', '2024-01-15T10:30:00.000+07:00', '2024-01-15'
Значения перечисленийконстанта перечисления или строкаStatus.active, 'inactive'
Выраженияв обратных кавычках`now()`, `uuid_generate_v4()`

Пример с разными типами

enum Status {
  active
  inactive
  pending
}

Table users {
  id int
  name varchar
  age int
  status Status
  created_at timestamp
}

records users(id, name, age, status, created_at) {
  1, 'Alice', 30, Status.active, '2024-01-15 10:30:00'
  2, 'Bob', null, 'inactive', `now()`
  3, 'Charlie', , Status.pending, '2024-01-15'
}

Демонстрационные записи

Настройка [example] помечает записи как демонстрационные: они остаются в DBML, но не попадают в INSERT при экспорте в SQL.

Table users {
  id int [pk]
  name varchar

  records [example] {
    1, 'Alice'
    2, 'Bob'
  }
}

records users(id, name) [example] {
  1, 'Alice'
  2, 'Bob'
}

Обновлено: 27 сентября 2026 г.