mirror of
https://github.com/taosdata/TDengine
synced 2026-05-24 10:09:01 +00:00
77 lines
2.1 KiB
Go
77 lines
2.1 KiB
Go
package main
|
|
|
|
import (
|
|
"database/sql"
|
|
"fmt"
|
|
"os"
|
|
"time"
|
|
|
|
_ "github.com/taosdata/driver-go/v2/taosRestful"
|
|
)
|
|
|
|
func main() {
|
|
dsn := os.Getenv("TDENGINE_GO_DSN")
|
|
taos, err := sql.Open("taosRestful", dsn)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
return
|
|
}
|
|
defer taos.Close()
|
|
// ANCHOR: insert
|
|
_, err = taos.Exec("DROP DATABASE IF EXISTS power")
|
|
if err != nil {
|
|
fmt.Println("failed to drop database, err:", err)
|
|
return
|
|
}
|
|
_, err = taos.Exec("CREATE DATABASE power")
|
|
if err != nil {
|
|
fmt.Println("failed to create database, err:", err)
|
|
return
|
|
}
|
|
_, err = taos.Exec("CREATE STABLE power.meters (ts TIMESTAMP, current FLOAT, voltage INT, phase FLOAT) TAGS (location BINARY(64), groupId INT)")
|
|
if err != nil {
|
|
fmt.Println("failed to create stable, err:", err)
|
|
return
|
|
}
|
|
result, err := taos.Exec("INSERT INTO power.d1001 USING power.meters TAGS(California.SanFrancisco, 2) VALUES ('2018-10-03 14:38:05.000', 10.30000, 219, 0.31000) ('2018-10-03 14:38:15.000', 12.60000, 218, 0.33000) ('2018-10-03 14:38:16.800', 12.30000, 221, 0.31000) power.d1002 USING power.meters TAGS(California.SanFrancisco, 3) VALUES ('2018-10-03 14:38:16.650', 10.30000, 218, 0.25000)")
|
|
if err != nil {
|
|
fmt.Println("failed to insert, err:", err)
|
|
return
|
|
}
|
|
rowsAffected, err := result.RowsAffected()
|
|
if err != nil {
|
|
fmt.Println("failed to get affected rows, err:", err)
|
|
return
|
|
}
|
|
fmt.Println("RowsAffected", rowsAffected) // RowsAffected 4
|
|
// ANCHOR_END: insert
|
|
// ANCHOR: query
|
|
rows, err := taos.Query("SELECT ts, current FROM power.meters LIMIT 2")
|
|
if err != nil {
|
|
fmt.Println("failed to select from table, err:", err)
|
|
return
|
|
}
|
|
defer rows.Close()
|
|
// ANCHOR_END: query
|
|
// ANCHOR: meta
|
|
// print column names
|
|
colNames, _ := rows.Columns()
|
|
fmt.Println(colNames)
|
|
// ANCHOR_END: meta
|
|
// ANCHOR: iter
|
|
for rows.Next() {
|
|
var r struct {
|
|
ts time.Time
|
|
current float32
|
|
}
|
|
err := rows.Scan(&r.ts, &r.current)
|
|
if err != nil {
|
|
fmt.Println("scan error:\n", err)
|
|
return
|
|
}
|
|
fmt.Println(r.ts, r.current)
|
|
}
|
|
// 2018-10-03 14:38:05 +0000 UTC 10.3
|
|
// 2018-10-03 14:38:15 +0000 UTC 12.6
|
|
// ANCHOR_END: iter
|
|
}
|