我原以为数据库会对它们经常遇到的事情有足够的了解,并且能够对它们所面临的需求做出响应,以便它们可以决定向高度请求的数据添加索引。
基本上我们的 Postgresql 表的一部分用于保存服务器访问日志,因此有时在生产过程中它会变得非常大。有什么方法可以在 postgresql 中设置一个表可以拥有的最大记录数并推出最旧的记录?
我即将发布一个脚本,它将一次更新许多 Firebird 数据库。有些没有这个约束,所以我想在我尝试删除它之前检查约束是否存在。
ALTER TABLE PROCESS_CATEGORY DROP CONSTRAINT INTEG_669;
Run Code Online (Sandbox Code Playgroud) 我想知道 PostgreSQL 是否有更新查询有点像他们的插入值语法。
我目前在此表单中有一组更新的数据:
INSERT INTO bought_in_control_panel(ID,PARENT_ID,BOUGHT_IN_FORM_TYPE_ID,PRIORITY,NAME,HEADING,DESCRIPTION,ICON,BOUGHT_IN_CONTROL_PANEL_FILE_ID)
VALUES(109,1,28,100,'Tooling','Tooling','Enter your Machine Tools here','tooling.png',null);
Run Code Online (Sandbox Code Playgroud)
并且我想将已有的行更新为新数据,我正在寻找类似以下内容的内容,我可以在其中更新所有行而无需重复自己:
UPDATE ON ID
bought_in_control_panel(ID,PARENT_ID,BOUGHT_IN_FORM_TYPE_ID,PRIORITY,NAME,HEADING,DESCRIPTION,ICON,BOUGHT_IN_CONTROL_PANEL_FILE_ID)
VALUES(
(109,1,28,100,'Tooling','Tooling','Enter your Machine Tools here','tooling.png',null),
(1,0,1,200,'Bought In','Bought In','','boughtin.png',null)
);
Run Code Online (Sandbox Code Playgroud)
以上将检查匹配ID值,并用新数据更新匹配。
注意:我真的希望避免手动映射所有列名。PostgreSQL 已经知道我的列,而且我已经将它们映射到数据上。为什么要以更长的格式再次这样做?