> For the complete documentation index, see [llms.txt](https://twharmon.gitbook.io/gosql/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://twharmon.gitbook.io/gosql/basic-usage/insert.md).

# Insert

This type is used in the examples on this page.

```go
type User struct {
    ID       int `gosql:"primary"`
    Email    string
    IsActive bool
}
```

If your `user` table has default auto-increment for the primary column, then you can leave it as the zero value.

```go
db.Insert(&User{
    Email: "gopher@example.com",
    IsActive: true,
})
```

You can also provide the id.

```go
db.Insert(&User{
    ID: 1,
    Email: "gopher@example.com",
    IsActive: true,
})
```

{% hint style="info" %}
GoSQL will add the primary key (in this case "id") to the insert query if it is not the zero value for its type.
{% endhint %}
