在Db2中为iSeries创建表

时间:2018-01-30 18:47:33

标签: db2 db2-400

我在sql server中有这样的表结构:

    CREATE TABLE [dbo].[taname](
[ID] [char](7) NOT NULL,
[SOURCE] [char](14) NOT NULL,
[TARGET] [char](14) NOT NULL,
[ID1] [char](100) NULL,
)

我试图在DB2中创建这个类似的表:

      CREATE TABLE schema.taname(
ID char(7) NOT NULL,
SOURCE char(14) NOT NULL,
TARGET char(14) NOT NULL,
ID1 char(100) NULL --error is here
);

但是,我在“ID”中收到错误:

关键字NULL不期望。有效令牌:不带有CCSID检查记录单独紧凑的非文件。原因。 。 。 。 。 :这里不期望关键字NULL。在关键字NULL处检测到语法错误。有效令牌的部分列表是AS NO FOR FOR NOT FILE with CCSID CHECK LOGGED UNIQUE COMPACT。此列表假定语句在意外关键字之前是正确的。该错误可能在语句中更早,但语句的语法似乎在此时有效。恢复。 。 。 :检查指定关键字区域中的SQL语句。可能缺少冒号或SQL分隔符。 SQL要求将保留字用作名称时将其分隔。更正SQL语句并再次尝试请求。

处理已结束,因为突出显示的语句未成功完成

我想创建类似于SQL Server的表,并在ID字段中允许NULL。我怎么能纠正这个?

1 个答案:

答案 0 :(得分:1)

NULL是默认值...你可以把它关掉......

CREATE TABLE schema.taname(
  ID char(7) NOT NULL,
  SOURCE char(14) NOT NULL,
  TARGET char(14) NOT NULL,
  ID1 char(100)
);

或者,指定DEFAULT子句......

CREATE TABLE schema.taname(
  ID char(7) NOT NULL,
  SOURCE char(14) NOT NULL,
  TARGET char(14) NOT NULL,
  ID1 char(100) DEFAULT NULL
);