当前位置: 首页 > 面试题库 >

如何将约束名称添加到已经存在的约束中

柳羽
2023-03-14
问题内容

有没有办法给已经存在的约束命名?
例如 :

create table employee (emp_id number(10),emp_name varchar2(20),
dept_id number(10),foreign key(dept_id) references department(dept_id));

在上面的查询中,我没有命名外键约束,因此在创建表之后,我可以为其命名,也可以在不删除列的情况下删除外键约束吗?


问题答案:

是的,您可以像这样重命名约束: alter table t rename constraint old_name to new_name

编辑:我忘记了第二个问题。是的,您可以删除约束而不删除列。如果您不知道约束的名称,则可以在user_constraints表中找到它,如下所示:

select constraint_name from user_constraints where table_name = 'your_table'and constraint_type ='R'



 类似资料:
  • 问题内容: 在我的数据库创建脚本中,创建脚本如下所示: 第一次运行良好,但是如果我再次运行,它将在最后一行失败,并带有“写入或更新时复制密钥”。 有什么办法可以做类似的事情吗?就像我可以使用查询吗? 问题答案: 有趣的问题。您可能需要在调用语句之前禁用外键,然后再启用它们。这将允许您直接在DDL中定义外键: 例: 测试用例:

  • 我正在将错误消息添加到登录屏幕。 虽然代码运行良好,并且执行我希望它执行的操作。它会在执行时导致约束错误。 以下是受影响的约束: 下面是导致errorView出现的函数。 如何在不破坏约束的情况下更改约束? 我尝试self.view.update约束()-但是什么也没有做。我还尝试在添加约束之前删除它们,但是仍然有一个错误。 任何帮助都将不胜感激! 编辑: 我找到了一个Objective-c解决方

  • 问题内容: Postgres是否有任何办法说如果约束已经存在,它将忽略该命令,从而不会引发错误? 问题答案: 这可能有所帮助,尽管可能有点脏: 然后致电: 更新: 根据Webmut的以下建议: 在您的开发数据库中,或者在您知道可以关闭依赖该数据库的应用程序作为维护时段的情况下,这可能很好。 但是,如果这是一个至关重要的24x7全天候生产环境,那么您真的不想像这样随意地放弃约束。即使是几毫秒,也有一

  • 问题内容: 我发现创建一个查询有困难。假设我有一个“产品和品牌”表。我可以使用此命令添加外键, 但是,如果外键不存在,我只需要运行此命令。我需要类似的事情是在不使用名称的情况下删除“外键约束”(如果存在)。 问题答案: 首先,您应该始终命名您的FK以及所有其他约束,以免出现此类麻烦。 但是,如果您不知道FK的名称,则可以使用多个系统视图进行检查:

  • hibernate如何生成外键约束名称? 如果我不定义一个名字,Hibernate会生成这样的东西 这个名字是如何产生的?可能是从字段名散列或类似的内容?我需要知道名称是否在所有实例上都相等。

  • 将创建如下映射: 问题:如何在Java中显式设置约束名称? 我不能引入双向映射,因为类将在多个其他类中使用。