【发布时间】:2022-01-18 15:04:23
【问题描述】:
我有下一个数据库。
CREATE TABLE DataLines(
id BIGSERIAL NOT NULL,
TimeStamp TIMESTAMP NOT NULL,
PRIMARY KEY (id, timestamp)
);
CREATE TABLE SpnValues(
id BIGSERIAL NOT NULL PRIMARY KEY ,
valueInt BIGINT NOT NULL ,
dataLineId BIGSERIAL ,
timestamp TIMESTAMP NOT NULL ,
FOREIGN KEY (datalineid, timestamp) REFERENCES DataLines(id, timestamp)
);
当我尝试在其中插入一些值时,我收到一个错误“表中不存在键”,但确实如此,我已经检查过了!我什至尝试直接从datalines 写信给spnvalues,但收到同样的错误。
有什么问题?
UPD
我从DataLines 创建超表。
SELECT create_hypertable('datalines', 'timestamp');
【问题讨论】:
-
哪个 Postgresql 版本?它适用于版本 9.5 到 14。dbfiddle.uk/…
-
时间戳的精度高达微秒。您尝试在
spnvalues中插入的值很可能与datalines中的值略有不同。一般来说,我认为向主键添加timestamp值是有意义的。特别是如果您已经生成了主键(顺便说一句:don't use serial) -
@jarlh,现在是 14。
-
@a_horse_with_no_name , idk,我尝试通过
SELECT timestamp FROM Datalines插入,但没有成功。 -
请包含重现错误所需的插入语句。
标签: sql postgresql timescaledb