将主键添加到现有表

时间:2016-04-28 17:39:30

标签: sql oracle composite-primary-key

我可以向已经拥有主键的表添加新列,以便新列和现有主键形成复合主键吗?

1 个答案:

答案 0 :(得分:0)

您不能直接执行此操作 - 您必须删除现有主键并创建一个新主键。请注意,主键列不能是null。 E.g:

-- Add the new column
-- Make sure it doesn't have any nulls in it
ALTER TABLE mytable ADD newcolumn NUMBER(10) NOT NULL DEFAULT 1;

-- Drop the primary key
ALTER TABLE mytable DROP PRIMARY KEY;

-- Add a new primary key
ALTER TABLE mytable ADD CONSTRAINT mytable_pk 
PRIMARY KEY (oldcolumn1, oldcolumn2, newcolumn);