Tag: 约束

如何定义一个实现接口的generics类并约束types参数?

class Sample<T> : IDisposable // case A { public void Dispose() { throw new NotImplementedException(); } } class SampleB<T> where T : IDisposable // case B { } class SampleC<T> : IDisposable, T : IDisposable // case C { public void Dispose() { throw new NotImplementedException(); } } 情况C是情况A和情况B的组合。这可能吗? 如何使案例C正确?

序言约束处理:包装正方形

我试图解决序言中的约束处理问题。 我需要在10×10的网格中包装5×5,4×4,3×3和2×2的4个方格。 它们可能不重叠。 我的variables是这样的: Name: SqX(i), i=1..10, domain: 1..10 其中X是5,4,3或2.索引i表示行,即域在网格中的列。 我的第一个约束试图定义正方形的宽度和高度。 我这样制定: Constraint: SqX(i) > SqX(j)-X /\ i>jX, range: i>0 /\ j>0 因此,可能的点被限制在彼此的X行和列之内。 然而,Prolog停止这些约束,并给出以下结果: Adding constraint "(Sq5_I > Sq5_J-5) /\ (I>J-5)" for values: I=1, J=1, I=1, J=2, I=1, J=3, I=1, J=4, I=1, J=5, I=1, J=6, =======================[ End Solutions ]======================= 所以它停在那里,甚至没有检查其他广场。 我的约束很可能太紧张,但我不明白为什么或如何。 有什么build议么?

暂时禁用所有外键约束

我正在运行一个SSIS包,它将从FlatFiles中的几个表中的数据replace为数据库中现有的表。 我的包将截断表,然后插入新的数据。 当我运行我的SSIS包,我得到一个exception,因为外键。 我可以禁用约束,运行我的导入,然后重新启用它们?

MySQL的术语“约束”与“外键”的区别?

我在这里查看MySQL文档,并试图理清FOREIGN KEY和CONSTRAINT之间的区别。 我以为FK 是一个约束,但是文档似乎像他们是独立的东西一样谈论他们。 创buildFK的语法是(部分)… [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name, …) REFERENCES tbl_name (index_col_name,…) 所以“CONSTRAINT”子句是可选的。 你为什么要包括它或不包括它? 如果你离开它MySQL是否创build一个外键,但不是一个约束? 还是说它更像是一个“CONSTRAINT”只不过是你FK的一个名字,所以如果你不指定它,你会得到一个匿名的FK? 任何澄清将不胜感激。 谢谢, 阮经天

如何从sqlite(3.6.21)表中删除约束?

我有下面的表格: CREATE TABLE child( id INTEGER PRIMARY KEY, parent_id INTEGER CONSTRAINT parent_id REFERENCES parent(id), description TEXT); 我如何删除约束?

PostgreSQL中的约束名称更新

有没有可能在Postgres中更改约束名称? 我有一个PK加上: ALTER TABLE contractor_contractor ADD CONSTRAINT commerce_contractor_pkey PRIMARY KEY(id); 而且我希望有不同的名字,以便与系统的其他部分保持一致。 我应该删除现有的PK约束,并创build一个新的? 还是有一个“软”的方式来pipe理呢? 谢谢!

删除影响UIView的所有约束

我有一个UIView通过几个约束放置在屏幕上。 一些约束由superview拥有,其他约束由其他祖先拥有(例如,也许是UIViewController的视图属性)。 我想删除所有这些旧的约束,并使用新的约束将其放置在新的地方。 我怎样才能做到这一点,而不必为每个约束创build一个IBOutlet,并且必须记住哪个视图拥有所述约束? 详细说,天真的方法是为每个约束创build一堆IBOutlets,然后包含调用代码,如: [viewA removeConstraint:self.myViewsLeftConstraint]; [viewB removeConstraint:self.myViewsTopConstraint]; [viewB removeConstraint:self.myViewsBottomConstraint]; [self.view removeConstraint:self.myViewsRightConstraint]; 这个代码的问题是即使在最简单的情况下,我也需要创build2个IBOutlets。 对于复杂的布局,可以轻松达到4或8个IBOutlet。 此外,我需要确保我的呼叫,以消除约束正在呼吁正确的看法。 例如,假设myViewsLeftConstraint属于viewA 。 如果我不小心调用了[self.view removeConstraint:self.myViewsLeftConstraint] ,什么都不会发生。 注意: constraintAffectingLayoutForAxis方法看起来很有前景,但是仅用于debugging目的。 更新:我收到的许多答案处理self.constraints , self.superview.constraints ,或这些的一些变体。 这些解决scheme将不起作用,因为这些方法只返回视图所拥有的约束,而不是影响视图的约束。 为了澄清这些解决scheme的问题,请考虑这个视图层次结构: 祖父 父亲 我 儿子 女儿 哥哥 叔叔 现在想象一下,我们创build下面的约束条件,并且总是将它们附加到最近的共同祖先: C0:我:和儿子一样(拥有我) C1:Me:宽度= 100(由Me拥有) C2:我:和兄弟一样高(父亲) C3:我:和叔叔一样(爷爷拥有) C4:我:和爷爷一样(祖父所有) C5:兄弟:跟爸爸一样(父亲) C6:叔叔:和祖父(爷爷)一样, C7:儿子:和女儿一样(由我拥有) 现在想象一下,我们想删除所有影响Me约束。 任何适当的解决scheme应该删除[C0,C1,C2,C3,C4]而不是别的。 如果我使用self.constraints (self是me),我会得到[C0,C1,C7] ,因为这些是我拥有的唯一约束。 显然这是不够的,因为它是缺less[C2,C3,C4] 。 此外,它不必要地删除C7 。 […]

Postgresql:有条件的唯一约束

我想添加一个约束,强制只在一个表的一部分列的唯一性。 ALTER TABLE stop ADD CONSTRAINT myc UNIQUE (col_a) WHERE (col_b is null); 上面的WHERE部分是一厢情愿的想法。 任何方式这样做? 还是应该回到关系图板?

PostgreSQL:默认约束名称

在PostgreSQL中创build表格时,如果没有提供,将会分配默认约束名称: CREATE TABLE example ( a integer, b integer, UNIQUE (a, b) ); 但是使用ALTER TABLE添加一个约束似乎是一个名字是必须的: ALTER TABLE example ADD CONSTRAINT my_explicit_constraint_name UNIQUE (a, b); 这导致了我所处理的项目中的一些命名不一致,并提示以下问题: 是否有一个简单的方法来添加一个约束到一个现有的表,如果在表创build期间添加它会收到的名字? 如果不是,应该避免默认名称,以防止不一致?

NSLayoutAttributeLeft vs NSLayoutAttributeLeading之间的区别

iOS自动NSLayoutAttributeLeading中的NSLayoutAttributeLeft和NSLayoutAttributeLeading什么区别?