现有一张三列组成主键的表。
如何最好地为其添加一个唯一列?最好在添加时创建一个序列。
您可以使用 ALTER TABLE
命令向表中添加额外的列。
ALTER TABLE table_name
ADD( new_column_name NUMBER UNIQUE );
CREATE SEQUENCE sequence_name;
CREATE TRIGGER trigger_name
BEFORE INSERT ON table_name
FOR EACH ROW
BEGIN
:new.new_column_name := sequence_name.nextval;
END;
CREATE TRIGGER trigger_name
BEFORE INSERT ON table_name
FOR EACH ROW
BEGIN
SELECT sequence_name.nextval
INTO :new.new_column_name
FROM dual;
END;
假设在插入新行之前,您还希望使用序列值初始化所有现有行
UPDATE table_name
SET new_column_name = sequence_name.nextval
WHERE new_column_name IS NULL