Tag: 约束

当我不知道约束的名称时,如何在Oracle中删除“not null”约束?

我有一个数据库有一个字段的NOT NULL约束,我想要删除这个约束。 复杂的因素是这个约束有一个系统定义的名字,而且这个约束的名称在生产服务器,集成服务器和各种开发者数据库中是不同的。 我们目前的过程是检查变更脚本,一个自动化的任务通过sqlplus对目标数据库执行适当的查询,所以我更喜欢一个可以直接发送到sqlplus的解决scheme。 在我自己的数据库上,删除这个SQL将是: alter table MYTABLE drop constraint SYS_C0044566 当我查询all_constraints视图时,我可以看到这个约束: select * from all_constraints where table_name = 'MYTABLE' 但我不知道如何处理SEARCH_CONDITION的LONG数据types,或者即使在知道它的名字后,如何最好地dynamic删除查找的约束。 那么,如何创build一个可以基于它是什么来放弃这个约束的变更脚本,而不是它的名字是什么呢? 编辑:@艾伦的答案是一个很好的答案,但我担心(在我缺乏Oracle专业知识),可能不是普遍真实的任何约束,可能有一个系统生成的名称将与它关联的方式来删除约束而不必知道它的名字。 是否真的总是有一种方法可以避免在逻辑上删除该约束条件时必须知道系统命名约束的名称?

自动布局(约束)在父视图中居中显示2个视图

我想弄清楚如何做到这一点与自动布局(iOS6)和约束。 基本上我把我的大视野分为两部分。 里面的部分(目前子视图)我有一个图像视图和标签。 我想以两边为中心,用可变长度的文本。 我的头大部分是围绕自动布局,但我不确定最好的办法。 我倾向于认为这是不可能在IB,但在代码。 继续尝试弄清楚这一点,但在此期间,我正在试图创build这个例子。

C#generics将不允许委托types约束

是否有可能在C#中定义一个类, class GenericCollection<T> : SomeBaseCollection<T> where T : Delegate 在.NET 3.5中我无法完成这一切。 我试过使用 delegate, Delegate, Action<T> and Func<T, T> 在我看来,这在某种程度上应该是可以允许的。 我试图实现我自己的EventQueue。 我最终只是做了这个[原始逼近你]。 internal delegate void DWork(); class EventQueue { private Queue<DWork> eventq; } 但是后来我失去了对不同types的函数重复使用相同定义的能力。 思考?

在Oracle SQL中显示表的所有约束的名称

我已经为在Oracle SQL中创build的多个表的每个约束定义了一个名称。 问题是,要删除特定表的列的约束,我需要知道我为每个约束提供的名称,我已经忘记了。 如何列出我为表的每一列指定的所有约束名称? 有没有这样做的SQL语句?

创build表时声明一个默认约束

我正在通过编写代码而不是使用GUI在Microsoft SQL Server 2000中创build一个新表,我正试图学习如何做到“手动方式”。 这是我实际使用的代码,它工作正常: CREATE TABLE "attachments" ( "attachment_id" INT NOT NULL, "load_date" SMALLDATETIME NOT NULL, "user" VARCHAR(25) NOT NULL, "file_name" VARCHAR(50) NOT NULL, CONSTRAINT "pk_attachments" PRIMARY KEY ("attachment_id"), CONSTRAINT "fk_users" FOREIGN KEY ("user") REFERENCES "users" ("user"), CONSTRAINT "ch_load_date" CHECK ("load_date" < GETDATE()) ) 我自己指定了主键,外键和检查约束,因为这样我可以为它们定义一个名称,否则将它们声明为内联会使SQL Server生成一个随机名称,而我不喜欢它。 当我试图声明默认值约束时,出现这个问题:查看互联网上的信息以及Microsoft SLQ Server Management Studio如何创build它,我明白它可以以内联方式创build: "load_date" SMALLDATETIME NOT […]

通过约束名称获取表名

Oracle约束名称是已知的。 如何find应用此约束的表的名称?

我可以在SQL Server的添加列语句中创build一个命名的默认约束吗?

在SQL Server中,我在表上有一个新列: ALTER TABLE t_tableName ADD newColumn NOT NULL 这失败了,因为我指定了NOT NULL而没有指定默认约束。 该表不应该有一个默认的约束。 为了解决这个问题,我可以使用默认约束创build表,然后删除它。 然而,似乎没有什么办法可以指定默认的约束应该被命名为这个语句的一部分,所以我唯一的方法是摆脱它的存储过程,它在sys.default_constraints表。 这对于可能发生的操作来说有点麻烦/冗长。 有没有人有更好的解决scheme呢?

如何在NULL列上创build唯一索引?

我正在使用SQL Server 2005.我想约束列中的值是唯一的,同时允许NULLS。 我目前的解决scheme涉及一个独特的索引,如下所示: CREATE VIEW vw_unq WITH SCHEMABINDING AS SELECT Column1 FROM MyTable WHERE Column1 IS NOT NULL CREATE UNIQUE CLUSTERED INDEX unq_idx ON vw_unq (Column1) 任何更好的想法?

Ruby on Rails:如何使用迁移向现有列添加非空约束?

在我的Rails(3.2)应用程序中,我有一堆表在我的数据库,但我忘了添加一些非空约束。 我search了一下,但我找不到如何编写一个迁移,现有的列添加不为空。 TIA。

如何在MySQL5.1的现有列中添加非空约束

我有以下列名称称为“人”的表名称 P_Id(int), LastName(varchar), FirstName (varchar). 我忘了把NOT NULL约束给P_Id 。 现在我试着用下面的查询将NOT NULL Constraint添加到名为P_Id现有列中, 1. ALTER TABLE Person MODIFY (P_Id NOT NULL); 2. ALTER TABLE Person ADD CONSTRAINT NOT NULL NOT NULL (P_Id); 我越来越语法错误….