我在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。我怎么能纠正这个?
答案 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
);