创建数据库 (DB2 LUW) 时出现意外标记“BIGINT”

问题描述 投票:0回答:1

这是我要运行的一个简单的sql命令:

CREATE TABLE USERMNGR.AUTHORIZED_CLIENT (
    ID BIGINT  (8) DEFAULT J NOT NULL,
    AUTHORIZED_CLIENT_STATUS CHAR    (10) DEFAULT 'Y',
    CLIENT_NAME VARCHAR (40) DEFAULT 'N' NOT NULL,
    NATIONAL_CODE CHAR    (16) DEFAULT 'N' NOT NULL,
    PRIMARY KEY (ID)
);

它有一些空格,但我认为它们不会造成任何问题。使用 IBM Data Studio、DBeaver 和 DB2 CLI 运行脚本将给出以下错误:

SQL Error [42601]: An unexpected token "BIGINT" was found following "ORIZED_CLIENT ( 
 ID".  Expected tokens may include:  "BINARY".. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.33.31

我找不到问题出在哪里。我在运行脚本之前手动创建了数据库

USERMNGR
,并且知道
BIGINT
受 DB2 支持。我在互联网上发现的每个
unexpected token
错误都有一些该命令没有的问题。这是一个简单的
CREATE TABLE
。我什至删除了前面的
USERMNGR.
,但它没有改变任何东西。我将
BIGINT
数据类型更改为
INTERGER
,它向我抛出了另一个错误:

CREATE TABLE USERMNGR.AUTHORIZED_CLIENT (
    ID INTEGER  (8) DEFAULT J NOT NULL,
    AUTHORIZED_CLIENT_STATUS CHAR    (10) DEFAULT 'Y',
    CLIENT_NAME VARCHAR (40) DEFAULT 'N' NOT NULL,
    NATIONAL_CODE CHAR    (16) DEFAULT 'N' NOT NULL,
    PRIMARY KEY (ID)
);
SQL Error [42601]: An unexpected token "(" was found following "LIENT ( 
 ID INTEGER".  Expected tokens may include:  "CHECK".. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.33.31

再一次尝试:

CREATE TABLE USERMNGR.AUTHORIZED_CLIENT (
    ID INTEGER DEFAULT J NOT NULL,
    AUTHORIZED_CLIENT_STATUS CHAR    (10) DEFAULT 'Y',
    CLIENT_NAME VARCHAR (40) DEFAULT 'N' NOT NULL,
    NATIONAL_CODE CHAR    (16) DEFAULT 'N' NOT NULL,
    PRIMARY KEY (ID)
);

错误:

SQL Error [42601]: An unexpected token "NOT" was found following "D INTEGER  DEFAULT J".  Expected tokens may include:  "<references_spec>".. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.33.31

我是 DB2 的新手,对 sql 了解更多,但我也不是专业人士。我在这里做错了什么吗?预先感谢。

sql db2 db2-luw
1个回答
0
投票

您在尝试在 DB2 数据库中创建表时似乎遇到了一些语法问题。让我们看看是否可以解决这个问题!

CREATE TABLE USERMNGR.AUTHORIZED_CLIENT (
    ID BIGINT DEFAULT 0 NOT NULL,
    AUTHORIZED_CLIENT_STATUS CHAR(10) DEFAULT 'Y',
    CLIENT_NAME VARCHAR(40) DEFAULT 'N' NOT NULL,
    NATIONAL_CODE CHAR(16) DEFAULT 'N' NOT NULL,
    PRIMARY KEY (ID)
);

In this corrected answer:

I removed the size specification for BIGINT, as it's unnecessary.

Give it a shot, and let's see if it works. I'm not entirely sure if this will fix the problem, but it's worth a try.
© www.soinside.com 2019 - 2024. All rights reserved.