【问题标题】:Oracle 11g - add new column and set as uniqueOracle 11g - 添加新列并设置为唯一
【发布时间】:2016-03-16 08:26:43
【问题描述】:

我遇到了如何使用 Oracle 11g 将新列设置为唯一的问题。

我尝试使用此代码,但出现错误:

ALTER TABLE QAS_ASSIGNED_STATE ADD UNIQUE (cuid);

【问题讨论】:

  • 您正在尝试向表中添加一个新列 (cuid)。该列应该有一个唯一的约束?
  • @jarlh 我不太确定。但我知道的是表已经有唯一的 id (ID)
  • @Chrisrs2292 我遵循了一种解决方案,但它不起作用,
  • 一张表可以有一个主键,但有几个唯一的约束/键。

标签: sql oracle11g unique alter


【解决方案1】:

您应该定义列的类型。像这样:

alter table
    QAS_ASSIGNED_STATE 
 add
    cuid number NULL;

然后添加约束:

ALTER TABLE QAS_ASSIGNED_STATE ADD CONSTRAINT constraint_cuid  UNIQUE (cuid );

【讨论】:

  • 你能添加一个没有默认值的 NOT NULL 列吗?
  • 仅当您的表为空时。你是对的,我会修复它。谢谢
  • @S.Nadezhnyy 如何添加新列并将其分配为表中已有数据的唯一列?我们可以这样做吗?我的意思是桌子没有空
  • 您应该将列添加为可为空的(就像在我的示例中一样)。然后用值填充列,然后创建约束。
猜你喜欢
  • 1970-01-01
  • 2021-09-16
  • 2021-04-18
  • 1970-01-01
  • 1970-01-01
  • 2013-02-24
  • 1970-01-01
  • 1970-01-01
  • 2020-08-28
相关资源
最近更新 更多