我想将备份表foo_bk中的所有记录插入foo表而不指定列.
如果我尝试这个查询
INSERT INTO foo
SELECT *
FROM foo_bk
Run Code Online (Sandbox Code Playgroud)
我将收到错误"插入错误:列名称或提供的值的数量与表定义不匹配".
是否可以在不提供列名的情况下从一个表批量插入到另一个表?我谷歌它但似乎无法找到答案.所有答案都需要特定的列.
对 timescaledb 来说相当陌生,我正在努力处理迁移脚本。我正在尝试使用 SQLAlchemy 为 Flask 应用程序创建迁移。
假设我创建了一个表(如 timescaledb 文档中所示),如下所示:
CREATE TABLE conditions (
time TIMESTAMPTZ NOT NULL,
location TEXT NOT NULL,
temperature DOUBLE PRECISION NULL,
humidity DOUBLE PRECISION NULL
);
Run Code Online (Sandbox Code Playgroud)
要添加超表,我的升级迁移脚本应该执行以下操作:
SELECT create_hypertable('conditions', 'time');
Run Code Online (Sandbox Code Playgroud)
降级部分应该是什么样子?从timescaledb 文档中,他们建议:
DROP table conditions;
Run Code Online (Sandbox Code Playgroud)
但我不想删除整个表,只删除“超表”部分(如果有意义的话)。也许这是愚蠢且毫无意义的,我想通过我们的迁移提供一种摆脱 timescaledb 的方法。我已经读过这个问题:Creating Hypertables through SQL Alchemy,其中似乎没有为 SQLAlchemy 提供特定支持,并且他们建议使用触发器来创建超表而不是特定的迁移。
你有什么建议?