我想批量插入数据到我们的ClickHouse数据库。使用gorm
,我可以轻松地使用
type audit struct{
field1 string `json:"field1"`,
field2 string `json:"field2"`,
}
chDB.Table(tableName).CreateInBatches(audits, 5)
字符串
但是,如果audit
包含如下数组字段,则其他字段的数据仍将保存在数据库中。只有带有数组的字段(如下所示field1
)不会被保存。
type audit struct{
field1 []string `json:"field1"`,
field2 string `json:"field2"`,
}
chDB.Table(tableName).CreateInBatches(audits, 5)
型
错误:[error] unsupported data type: &[]
只有当我准备一个声明并保存数据,它才能工作。但是,在这种情况下,它不再是批处理插入
sqlDB, err := db.DB()
tx, err := sqlDB.Begin()
stmt, err := tx.PrepareContext(ctx, `insert into audit_table (field1, field2) values (?, ?)`)
_, err = stmt.ExecContext(ctx, clickhouse.Array(audit.field1), audit.field2)
err = tx.Commit()
型
有人能帮我一下吗?如何批量插入数组数据到ClickHouse列?
2条答案
按热度按时间e3bfsja21#
您可能需要在
clickhouse.Array
列中插入clickhouse.Array
类型字符串
nfg76nw02#
这对我不起作用,我需要用正确的字段标记更新我的结构体,如下所示
字符串
可以很容易地进行批量插入
型