【问题标题】:Reason code = "1".. SQLCODE=-846, SQLSTATE=42815原因代码 = "1".. SQLCODE=-846, SQLSTATE=42815
【发布时间】:2015-11-02 08:51:36
【问题描述】:
create TABLE STUDENT_TEMP
(
    USER_ID VARCHAR(10) NOT NULL GENERATED ALWAYS AS IDENTITY 
             (START WITH 1 INCREMENT BY 1 MINVALUE 1 NO MAXVALUE NO CYCLE NO CACHE ORDER),
    USER_NAME VARCHAR(50) NOT NULL,
    CITY VARCHAR(20),
    PRIMARY KEY  (USER_ID)
 );

我想在 db2 中插入带有序列的自动增量列。 尝试使用来自 ibm 站点的此代码。 但还没有正确的代码。

【问题讨论】:

  • Right from the manual: "原因代码1:不支持标识列或序列对象的底层数据类型。标识列和序列对象支持以下数据类型:SMALLINT、INTEGER 、BIGINT 和小数位数为零的 DECIMAL(或 NUMERIC)。".

标签: db2 sequence auto-increment


【解决方案1】:

将 USER_ID 更改为整数或其他数字数据类型,因为 VARCHAR 不是标识列支持的数据类型。

create TABLE STUDENT_TEMP ( USER_ID int NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1 MINVALUE 1 NO MAXVALUE NO CYCLE NO CACHE ORDER), USER_NAME VARCHAR(50) NOT NULL, CITY VARCHAR(20), PRIMARY KEY (USER_ID) );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 2014-01-22
    相关资源
    最近更新 更多