我有一个PostgreSQL 9.6.10,数据库大约有380 Gb的存储空间。
在数据库中,有几个相互关联的表。
我想开始清理东西。旧记录将被删除。
我写了一个这样的剧本:
BEGIN;
DELETE FROM table1 WHERE id IN (...subquery...);
DELETE FROM table2 WHERE id IN (...subquery...);
DELETE FROM table3 WHERE id IN (...subquery...);
DELETE FROM table4 WHERE id IN (...subquery...);
DELETE FR
我有一个子表,它的外键引用了另外两个表,Parent1 & Parent2 (这些不是这些表的实名)。Parent1 & Parent2都与祖父母有一对多的关系。子表是一个连接表,在Parent1和Parent2之间建立了多到多的关系,但作为自己的“映射实体”公开给Breeze。
我对这两个外键都设置了级联删除,当我从中删除Parent1或Parent2表中的一行时,级联正常工作,相应的子表中的行将被删除。
但是,当我在应用程序中使用Breeze执行以下代码时
function removeParent1(grandParent, parent1) {
var inde
我正在寻找一些关于映射大型遗留模式的建议。
情况是这样的。假设我们有一个名为BusinessTransaction的类。该类有几个引用用户ids的字段:
@Entity
public class BusinessTransaction implements Serializable {
private Long id;
private User createdBy;
private User editedBy;
private User cancelledBy;
private String department;
// etc
}
p
我有一个数据结构,如下所示:
Model Place
primary key "id"
foreign key "parent" -> Place
foreign key "neighbor" -> Place (symmetryc)
foreign key "belongtos" -> Place (asymmetric)
a bunch of scalar fields ...
我在模型表中有超过500万行,我需要将~5000万行插入到两个外键表中的每个表中。我有类
我需要创建一个新的表,其中有外键与Users表。
Users表有两百万条记录。
当我在我们的测试服务器上运行脚本时,它锁定了这个表,并且测试用户在事务期间不能查询这个表。
查询开始于;
BEGIN TRANSACTION
GO
ALTER TABLE dbo.Users SET (LOCK_ESCALATION = TABLE)
GO
COMMIT
/*CREATE NEW TABLE AND FOREIGN KEYS HERE*/
怎样才能在生产环境中安全地运行而不锁定它呢?
我们是否应该将生产服务器设置为“维护模式”,并在sql事务完成时再次将其设置为活动状态?
假设您在数据库中有一个树数据结构,如下所示:
Level:
id nextlevel desc
1 2 company
2 3 department
3 4 group
Nodes:
id level parentnode
0 1 null -> the company
1 2 0 -> dep 1
2 2 0 -> de
在导入从rails建立派生的文件时,psql正在命中外键约束的错误:
ERROR: insert or update on table "documents" violates foreign key constraint "fk_rails_d4abdc7f58"
Key (typ_document_id)=(7) is not present in table "typ_documents".
但是,事后查询
SELECT * from typ_documents;
得到结果
7 | Test Internal | 2013-07-04
我试图两次从另一个表(端口)加入一个表(连接)。
这些条件是:
一个端口可以有一个或没有一个连接。
一个连接有一个从端口和一个到端口。
结构如下:
餐桌港口:
id
数
表连接:
id
port_from_id
port_to_id
名字
所以现在我想加入从港口到连接。
蛋糕总是给我这个:
LEFT JOIN connections Connections ON Ports.id = (Connections.port_from_id)
但它必须是:
LEFT JOIN connections Connections ON Ports.
我想建立一个一对多的关系,如在教程中。
一对多关系的一个例子是一篇“有很多”评论的博客文章。我们可以这样模拟这种关系:
class Post extends Eloquent {
public function comments()
{
return $this->hasMany('Comment');
}
}
所以我想做一个模型帖子(连接到表“Post”)和一个模型注释(连接到表‘注释’)。我在phpMyAdmin中创建表,而不是使用迁移(因为我在在线服务器上没有SSH支持)。comments表有一列‘post_id’。
如何将外键与此处的不同名称相关联:在post中创建,在users表中使用UserID。
public class Post : IValidatableObject
{
[Key]
public long PostID { get; set; }
public long? ParentPostID { get; set; }
[ForeignKey("CreatedBy")]
public virtual User Users { get; set; }
[ScaffoldColumn(false)]