TDengine/docs/examples/python/stmt2_native.py
2024-12-30 16:11:11 +08:00

78 lines
2.5 KiB
Python

import taos
from datetime import datetime
import random
conn = None
stmt2 = None
host="localhost"
port=6030
try:
# 1 connect
conn = taos.connect(
user="root",
password="taosdata",
host=host,
port=port,
)
# 2 create db and table
conn.execute("CREATE DATABASE IF NOT EXISTS power")
conn.execute("USE power")
conn.execute(
"CREATE TABLE IF NOT EXISTS `meters` (`ts` TIMESTAMP, `current` FLOAT, `voltage` INT, `phase` FLOAT) TAGS (`groupid` INT, `location` BINARY(16))"
)
# 3 prepare
sql = "INSERT INTO ? USING meters (groupid, location) TAGS(?,?) VALUES (?,?,?,?)"
stmt2 = conn.statement2(sql)
# table name array
tbnames = ["d0","d1","d2"]
# tag data array
tags = [
[1, "BeiJing"],
[2, None],
[3, "ShangHai"]
]
# column data array
datas = [
# d0 tabled
[
[1601481600000,1601481600001,1601481600002,1601481600003,1601481600004,1601481600005],
[10.1, 10.2, 10.3, 10.4, 10.5 ,None ],
[98, None, 60, 100, 99 ,128 ],
[0, 1, 0, 0, 1 ,0 ]
],
# d1 tabled
[
[1601481700000,1601481700001,1601481700002,1601481700003,1601481700004,1601481700005],
[10.1, 10.2, 10.3, 10.4, 10.5 ,11.2 ],
[98, 80, 60, 100, 99 ,128 ],
[0, 1, 0, 0, 1 ,0 ]
],
# d2 tabled
[
[1601481800000,1601481800001,1601481800002,1601481800003,1601481800004,1601481800005],
[10.1, 10.2, 10.3, 10.4, 10.5 ,13.4 ],
[98, 80, 60, 100, 99 ,128 ],
[0, 1, 0, None, 1 ,0 ]
],
]
# 4 bind param
stmt2.bind_param(tbnames, tags, datas)
# 5 execute
stmt2.execute()
# show
print(f"Successfully inserted with stmt2 to power.meters.")
except Exception as err:
print(f"Failed to insert to table meters using stmt2, ErrMessage:{err}")
raise err
finally:
if stmt2:
stmt2.close()
if conn:
conn.close()