Skip to Content

Tags Usage

  • db - column name in db
package main type _ struct { ID int `db:"id"` }
  • pk - if set then column is primary key
package main type _ struct { ID int `db:"id" pk:"true"` }
  • nullable - if set then column is nullable(without NOT NULL)
package main type _ struct { Code *int `db:"code" nullable:"true"` }
  • length - column length(useful for varchar)
package main type _ struct { Name string `db:"name" length:"64"` }
  • uniq - if set then column is unique(can be placed to many properties - grouped, on single column can be many uniq’s, separated by ,)
package main // CREATE UNIQUE INDEX uniq_name ON example_table (name); type _ struct { Name string `db:"name" uniq:"uniq_name"` } // CREATE UNIQUE INDEX uniq_name_parted ON example_table (name_part1, name2); type _ struct { NamePart1 string `db:"name_part1" uniq:"uniq_name_parted"` NamePart2 string `db:"name2" uniq:"uniq_name_parted"` }
  • uniq_cond - work in pair with uniq, uniq_cond is a condition for uniq, can be placed on any column(of grouped uniq’s, do not set to every column of grouped uniq’s, can be multiple, separated by ,)
package main // CREATE UNIQUE INDEX uniq_name_parted ON example_table (name1, name2) WHERE is_selected = true; type _ struct { Checked bool `db:"is_checked"` NamePart1 string `db:"name1" uniq:"uniq_name_parted" uniq_cond:"uniq_name_parted:(is_checked = true)"` NamePart2 string `db:"name2" uniq:"uniq_name_parted"` }
  • index - if set then column is index(logic same as uniq)
package main // CREATE INDEX idx_name ON example_table (name); type _ struct { Name string `db:"name" index:"idx_name"` } // CREATE INDEX idx_name_parted ON example_table (name_part1, name2); type _ struct { NamePart1 string `db:"name_part1" index:"idx_name_parted"` NamePart2 string `db:"name2" index:"idx_name_parted"` }
  • index_cond - work in pair with index(logic same as uniq_cond)
package main // CREATE INDEX idx_name_parted ON example_table (name1, name2) WHERE is_selected = true; type _ struct { Checked bool `db:"is_checked"` NamePart1 string `db:"name1" index:"idx_name_parted" index_cond:"idx_name_parted:(is_checked = true)"` NamePart2 string `db:"name2" index:"idx_name_parted"` }
  • default - if set then column has default value
package main type _ struct { Name string `db:"name" default:"123"` }
  • type - if set then column has type(manually set, without struct property type checking)
package main type ExampleType int type _ struct { Type ExampleType `db:"type" type:"int"` }

Possible types: text, varchar, json, jsonb, integer

Last updated on