我有一个表已经包含一些行,并且没有主键。
我想现在添加一个主键,但为此我需要为现有行的主键字段设置唯一值。如何使用新添加的生成器来完成?
答案 0 :(得分:5)
主键本身不会生成任何值。这是约束。在您的示例中,您需要做下一步:
示例:
CREATE TABLE test (a varchar(20));
COMMIT;
INSERT INTO test (a) VALUES ('A');
INSERT INTO test (a) VALUES ('B');
INSERT INTO test (a) VALUES ('C');
COMMIT;
ALTER TABLE test ADD pk INTEGER NOT NULL;
CREATE GENERATOR g_test;
COMMIT;
UPDATE test SET pk = GEN_ID(g_test, 1);
ALTER TABLE test ADD CONSTRAINT test_pk
PRIMARY KEY (pk);