Tag: 约束

截断外键约束表

为什么我的群组上没有TRUNCATE ? 即使我有ON DELETE CASCADE SET我得到: 错误1701(42000):无法截断在外键约束中引用的表( mytest ,CONSTRAINT instance_ibfk_1 FOREIGN KEY( GroupID )REFERENCES mygroup ( ID )) drop database mytest; create database mytest; use mytest; CREATE TABLE mygroup ( ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE=InnoDB; CREATE TABLE instance ( ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, GroupID INT NOT NULL, DateTime […]

如何以编程方式创build布局约束

我在通用应用程序底部显示一个视图,并在我的视图中dynamic添加此视图。 我想每次像iAd一样在底部显示这个视图。 在两个方向。 我怎样才能为此添加约束。 请build议。 谢谢

我正在寻找一个约束,以防止在MySQL中插入一个空string

好的,在这个问题中,我学会了如何防止插入一个NULL值。 但是,不幸的是,无论如何都插入了一个空string。 除了防止在PHP方面,我想使用像数据库约束,以防止这一点。 当然,在应用程序方面的检查是必要的,但我希望它是双方。 我被告知,无论应用程序在与数据库交谈,它都不应该在其中插入基本错误的数据。 所以… CREATE TABLE IF NOT EXISTS tblFoo ( foo_id int(11) NOT NULL AUTO_INCREMENT, foo_test varchar(50) NOT NULL, PRIMARY KEY (foo_id) ); 仍然会允许我这样做插入: INSERT INTO tblFoo (foo_test) VALUES (''); 我想要阻止的

约束命名的目的是什么?

命名约束(唯一,主键,外键)的目的是什么? 假设我有一个使用自然键作为主键的表: CREATE TABLE Order ( LoginName VARCHAR(50) NOT NULL, ProductName VARCHAR(50) NOT NULL, NumberOrdered INT NOT NULL, OrderDateTime DATETIME NOT NULL, PRIMARY KEY(LoginName, OrderDateTime) ); 给我的PK带来什么好处(如果有的话)? 例如。 更换: PRIMARY KEY(LoginName, OrderDateTime) 附: CONSTRAINT Order_PK PRIMARY KEY(LoginName, OrderDateTime) 对不起,如果我的数据模型不是最好的,我是新来的!

为什么我不能在带有多个边界的types参数中使用types参数?

所以,我明白以下不起作用,但为什么不起作用? interface Adapter<E> {} class Adaptulator<I> { <E, A extends I & Adapter<E>> void add(Class<E> extl, Class<A> intl) { addAdapterFactory(new AdapterFactory<E, A>(extl, intl)); } } add()方法给我一个编译错误,“当第一次绑定是一个types参数”(在Eclipse中)或“types参数不能跟在其他边界之后”(在IDEA中)时,不能指定任何附加绑定的Adapter <E>拿你的select。 显然你只是不允许在&之前使用types参数I ,那就是。 (而且在你问之前,如果你换了他们,这是行不通的,因为I不能保证I不是一个具体的类。)但是为什么不呢? 我已经浏览了Angelika Langer的常见问题解答并找不到答案。 一般来说,当一些generics限制看起来是任意的,这是因为你已经创build了一个types系统实际上不能实现正确性的情况。 但我不明白什么情况会打破我在这里要做的事情。 我想说也许它与types擦除后方法调度有关,但只有一个add()方法,所以它不像有任何含糊不清… 有人能certificate我的问题吗?

对一组列的NOT NULL约束

我在Postgres中有一个表,它的email列目前有一个NOT NULL约束。 该表还具有可选的phone列。 我希望系统接受一些没有emaillogging,但只有当这些logging有NOT NULL phone 。 换句话说,我需要一个NOT NULL数据库约束,以便CREATE或UPDATE查询在没有任何错误的情况下成功,如果其中一个或两个email或phone字段都存在。 进一步扩展上述内容,是否有可能在Postgres中指定一组列名,其中一个或多个应该为NOT NULL ,以便成功更新或创buildlogging?

UIScrollView和约束

我想把UIImageView放在UIScrollView的顶部,当我将UIScrollView约束到View Controller的两边,并将UIImageView约束到顶部,并使UIImageView的宽度等于UIScrollView时,它使UIImageView的方式比UIScrollView更宽,比想象的要高得多。 任何想法我做错了什么? 故事板: 预习:

是否有一个“实数”types的C#通用约束?

可能重复: C#通用约束只有整数 映入眼帘! 我正在尝试在C#中设置一个笛卡尔坐标系,但是我不想将自己的坐标值限制为任何一种数字types。 有时他们可能是整数,有时他们可能是有理数,取决于上下文。 这尖叫“generics类”给我,但我不知道如何将types收敛到积分和浮点。 我似乎无法find一个涵盖任何实数概念的类。 public class Point<T> where T : [SomeClassThatIncludesBothIntsandFloats?] { T myX, myY; public Point(T x, T y) { myX = x; myY = y; } } Point<int> pInt = new Point<int>(5, -10); Point<float> pFloat = new Point<float>(3.14159, -0.2357); 如果我想要这样的自由度,当我在课堂上进行计算时,是否会select“type(T)”的噩梦,除去布尔,string,对象等? 或者更糟糕的是,我是否select为每个想要使用的数字types创build一个类,每个类都使用相同的内部math公式? 任何帮助,将不胜感激。 谢谢!

在PostgreSQL中使用EXCLUDE防止相邻/重叠条目

我正在创build一个在PostgreSQL 9.2.4中存储任意date/时间范围的数据库。 我想对这个强制date/时间范围不重叠和不相邻(因为两个相邻范围可以表示为单个连续范围)的数据库施加约束。 为此,我正在使用带有GiST索引的EXCLUDE约束。 这是我目前的限制: ADD CONSTRAINT overlap_exclude EXCLUDE USING GIST ( box( point ( extract(EPOCH FROM "from") – 1, extract(EPOCH FROM "from") – 1 ), point ( extract(EPOCH FROM "to"), extract(EPOCH FROM "to") ) ) WITH && ); from和to的列都是TIMESTAMP WITHOUT TIME ZONE ,并且是以UTC格式存储的date/时间(在将数据插入到应用程序中的这些列之前,我将其转换为UTC,并且在postgresql.conf中将数据库的时区设置为“UTC” )。 但是我想我可能会遇到的问题是,这个约束使得(不正确的)假设没有时间增量小于一秒。 值得注意的是,对于我所存储的特定数据,我只需要第二个解决scheme。 不过,我觉得我可能仍然需要处理这个问题,因为SQLtypes的timestamp和timestamptz的分辨率都高于一秒。 我的问题是:是否有任何问题,简单地假设第二个决议,因为这是我的应用程序的所有需求(或希望),或者,如果有,我怎么能改变这个约束来处理一秒健壮的方式?

约束定义了DEFERRABLE INITIALLY IMMEDIATE仍然是DEFERRED?

关于这个答案,我偶然发现了一个我无法解释的现象。 版: 在x86_64-unknown-linux-gnu上的PostgreSQL 9.1.2,由gcc-4.4.real编译(Debian 4.4.5-8)4.4.5,64位 考虑下面的演示。 testing平台: CREATE TEMP TABLE t ( id integer ,txt text ,CONSTRAINT t_pkey PRIMARY KEY (id) DEFERRABLE INITIALLY IMMEDIATE ); INSERT INTO t VALUES (1, 'one') ,(2, 'two'); 1)修改多行的UPDATE语句: UPDATE t SET id = t_old.id FROM t t_old WHERE (t.id, t_old.id) IN ((1,2), (2,1)); 在目前的实施中似乎有一个错误? 上面的更新工作,虽然它不应该 。 约束被定义为INITIALLY IMMEDIATE ,我没有使用SET […]