在DB2中从开始动态设置标识

在DB2中从开始动态设置标识,db2,Db2,我希望能够这样做,以动态设置标识以值开头。可能吗 CREATE VARIABLE v_number BIGINT DEFAULT 142; ALTER TABLE txn ALTER COLUMN id SET DATA TYPE BIGINT NOT NULL PRIMARY KEY UNIQUE GENERATED BY DEFAULT AS IDENTITY ( START WITH v_number * 1000000, INCREMENT BY

我希望能够这样做,以动态设置标识以值开头。可能吗

CREATE VARIABLE v_number BIGINT DEFAULT 142;
ALTER TABLE txn
  ALTER COLUMN id SET DATA TYPE BIGINT NOT NULL 
     PRIMARY KEY UNIQUE 
     GENERATED BY DEFAULT AS IDENTITY (
       START WITH v_number * 1000000, INCREMENT BY 1
     );

DDL语句通常需要文字值,因此您需要使用动态SQL:

CREATE VARIABLE v_number BIGINT DEFAULT 142;
EXECUTE IMMEDIATE 'ALTER TABLE txn ' ||
  'ALTER COLUMN id SET DATA TYPE BIGINT NOT NULL' || 
     'PRIMARY KEY ' || 
     'GENERATED BY DEFAULT AS IDENTITY (' ||
       'START WITH ' || v_number || '* 1000000 INCREMENT BY 1 )';
没有理由同时声明
唯一
主键
约束-主键值根据定义是唯一的