使用SQL Identity子句并分配起始编号

时间:2013-10-28 15:11:29

标签: sql ibm-midrange

我需要在SQL中使用和Identity字段创建一个表。我已经能够通过我在本网站上阅读的其他问题解决这个问题。但是我需要改变我所发现的东西。

以下创建了文件,当我添加记录时,字段EMPNO中的值从1开始。我需要字段值从500010000000开始,如果每个新记录的可用增量为15。

CREATE TABLE r247585lib/cooltable                        
(EMPNO INTEGER GENERATED ALWAYS AS IDENTITY,             
NAME CHAR(30),                                           
SALARY DECIMAL(5,2),                                     
DEPT SMALLINT)     

最后一个并发症。我在AS400上这样做。有没有人有任何想法?
那是提前的。

1 个答案:

答案 0 :(得分:3)

使用START WITHINCREMENT BY身份选项:

CREATE TABLE r247585lib/cooltable
(EMPNO BIGINT GENERATED ALWAYS AS IDENTITY 
    (START WITH 500010000000, INCREMENT BY 15),             
NAME CHAR(30),
SALARY DECIMAL(5,2),
DEPT SMALLINT)

EMPNO需要声明为BIGINT,因为示例起始值不适合32位整数数据类型。

| TYPE    |                        MIN |                        MAX |
|---------+----------------------------+----------------------------|
| INTEGER |             -2 147 483 648 |             +2 147 483 647 |
| BIGINT  | -9 223 372 036 854 775 808 | +9 223 372 036 854 775 807 |

供参考,可用的身份选项和用法是:

|--AS IDENTITY--+------------------------------------------------------+--|
                |    .--------------------------------------------.    |   
                |    V               .-1----------------.     (1) |    |   
                '-(----+-START WITH--+-numeric-constant-+---+-----+--)-'   
                       |               .-1----------------. |              
                       +-INCREMENT BY--+-numeric-constant-+-+              
                       | .-NO MINVALUE----------------.     |              
                       +-+-MINVALUE--numeric-constant-+-----+              
                       | .-NO MAXVALUE----------------.     |              
                       +-+-MAXVALUE--numeric-constant-+-----+              
                       | .-NO CYCLE-.                       |              
                       +-+-CYCLE----+-----------------------+              
                       | .-CACHE--20------.                 |              
                       +-+-NO CACHE-------+-----------------+              
                       | '-CACHE--integer-'                 |              
                       | .-NO ORDER-.                       |              
                       '-+-ORDER----+-----------------------'    

有关详细信息,请参阅CREATE TABLE上的文档。

我建议使用GENERATED BY DEFAULT,以便您可以根据需要使用预先指定的身份密钥插入现有数据。