0

我需要在 SQL 中创建一个带有标识字段的表。我已经能够通过我在这个网站上阅读的其他问题来解决这个问题。但是,我需要对我的发现有所改变。

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

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

最后一个并发症。我在 AS400 上执行此操作。有没有人有任何想法?
那是提前。

4

1 回答 1

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,以便您可以在需要时使用预先分配的身份密钥插入现有数据。

于 2013-10-28T17:26:59.860 回答