#td-engine
Вопрос:
Я создал базу данных с update=1, чтобы я мог обновлять некоторые записи на основе метки времени. но я обнаружил, что обновление не работает, когда я использую пакетную вставку. Я также попробовал обычную вставку, обновление записи работает.
Welcome to the TDengine shell from Linux, Client Version:2.1.7.2
Copyright (c) 2020 by TAOS Data, Inc. All rights reserved.
taos> create database test update 1;
Query OK, 0 of 0 row(s) in database (0.007977s)
taos> use test;
Database changed.
taos> create table tb(ts timestamp, c1 int);
Query OK, 0 of 0 row(s) in database (0.015282s)
taos> insert into tb values(now, 1)(now, null);
Query OK, 1 of 1 row(s) in database (0.000797s)
taos> select * from tb;
ts | c1 |
========================================
2021-09-28 11:37:32.339 | 1 |
Query OK, 1 row(s) in set (0.002671s)
taos> insert into tb values("2021-09-28 11:37:32.339", null);
Query OK, 1 of 1 row(s) in database (0.000611s)
taos> select * from tb;
ts | c1 |
========================================
2021-09-28 11:37:32.339 | NULL |
Query OK, 1 row(s) in set (0.002591s)
в чем разница между пакетной вставкой и обычной вставкой в TDengine?
Ответ №1:
При пакетной вставке используется то же самое «сейчас». Это приводит к тому, что две записи используют одну и ту же метку времени, которая не может быть допустимой записью, поскольку базе данных временных рядов требуется, чтобы каждая запись использовала другую метку времени.