.Create[T](table, data)
Creates a record in the database.
Method Syntax
db.Create[T](table, data)
Arguments
| Arguments | Description |
|---|
table required | The table name or a RecordId to create. |
data optional | The document / record data to insert. |
Example usage
package main
import (
"fmt"
"time"
surrealdb "github.com/surrealdb/surrealdb.go"
"github.com/surrealdb/surrealdb.go/pkg/models"
)
func ExampleCreate() {
db, err := surrealdb.New("ws://localhost:8000")
if err != nil {
panic(err)
}
if err = db.Use("test", "test"); err != nil {
panic(err)
}
token, err := db.SignIn(&surrealdb.Auth{
Username: "root",
Password: "root",
})
if err != nil {
panic(err)
}
if err = db.Authenticate(token); err != nil {
panic(err)
}
type Person struct {
Name string `json:"name"`
CreatedAt models.CustomDateTime `json:"created_at,omitempty"`
UpdatedAt *models.CustomDateTime `json:"updated_at,omitempty"`
}
createdAt, err := time.Parse(time.RFC3339, "2023-10-01T12:00:00Z")
if err != nil {
panic(err)
}
var inserted *Person
inserted, err = surrealdb.Create[Person](
db,
"persons",
map[string]any{
"name": "First",
"created_at": createdAt,
})
if err != nil {
panic(err)
}
fmt.Printf("Create result: %+s\n", *inserted)
_, err = surrealdb.Create[struct{}](
db,
"persons",
map[string]any{
"name": "Second",
"created_at": createdAt,
},
)
if err != nil {
panic(err)
}
_, err = surrealdb.Create[struct{}](
db,
"persons",
Person{
Name: "Third",
CreatedAt: models.CustomDateTime{
Time: createdAt,
},
},
)
if err != nil {
panic(err)
}
var fourthAsMap *map[string]any
fourthAsMap, err = surrealdb.Create[map[string]any](
db,
"persons",
map[string]any{
"name": "Fourth",
"created_at": models.CustomDateTime{
Time: createdAt,
},
},
)
if err != nil {
panic(err)
}
if _, ok := (*fourthAsMap)["id"].(models.RecordID); ok {
delete((*fourthAsMap), "id")
}
fmt.Printf("Create result: %+s\n", *fourthAsMap)
selected, err := surrealdb.Select[[]Person](
db,
"persons",
)
if err != nil {
panic(err)
}
for _, person := range *selected {
fmt.Printf("Selected person: %+s\n", person)
}
}