gpt4 book ai didi

python - PostgreSQL 中基表更改时自动添加列

转载 作者:行者123 更新时间:2023-11-29 16:18:00 25 4
gpt4 key购买 nike

我正在使用 Postgres。

table1列:id , name

table2_hist列:id , name

如果我再添加一列salarytable1 (只有列,没有数据),是否可以将该列也添加到 table2

像这样,我有多个表要添加列。有这方面的脚本吗?

最佳答案

在 PostgreSQL 中,一种方法是使用 event triggerALTER TABLE 触发。在用 C 编写的事件触发器中,您可以分析解析树并采取适当的措施。

但这似乎是一种麻烦的方法。

PostgreSQL 中的另一个想法是使用继承。由于这些表具有相同的列,因此一个可以从另一个表继承:

CREATE TABLE table1 (id integer PRIMARY KEY, name text);

CREATE TABLE table2 () INHERITS (table1);

\d table2
Table "laurenz.table2"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+---------
id | integer | | not null |
name | text | | |
Inherits: table1

ALTER TABLE table1 ADD newcol bytea;

\d table2
Table "laurenz.table2"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+---------
id | integer | | not null |
name | text | | |
newcol | bytea | | |
Inherits: table1

但我认为您无法找到同时适用于 MySQL 和 PostgreSQL 的解决方案。

我认为尝试在数据库中自动执行此操作是错误的。您应该找到其他方法来确保在没有对历史表进行相应修改的情况下不会修改任何表。

关于python - PostgreSQL 中基表更改时自动添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54664511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com