搜索
查看: 1455|: 0

【DB2】异常收集之DB2建表相关问题

[复制链接]

149

主题

5

回帖

554

积分

高级会员

积分
554
发表于 2014-11-17 15:22:06 | 显示全部楼层 |阅读模式
本帖最后由 MEI 于 2014-11-17 15:23 编辑

第一次用DB2数据库,由于考虑到建表语句可能不一样,所以采用手动建表的办法,一个个字段去填。并勾选主键,最后发现创建失败。看了下系统生成的sql语句

sql语句如下:

CREATE TABLE FRONT.SCORE_REVERSE
(
SERIAL_NO VARCHAR(50),
SECRET_KEY VARCHAR(50),
TRADEBOX_ID INTEGER(32),
REDUCE_POINT_TYPE VARCHAR(50),
REDUCE_POINT_REASON VARCHAR(50),
REDUCE_TIME VARCHAR(50),
LOGIN_NAME VARCHAR(50),
COMMODITY_ID INTEGER(32),
COMMODITY_NUMBER VARCHAR(50),
POINT INTEGER(32),
CONTACT_NAME VARCHAR(50),
CONTACT_MOBILE_NO VARCHAR(50),
CONTACT_ADDRESS VARCHAR(50),
COMMODITY_TYPE VARCHAR(50),
REVERSE_TIME VARCHAR(50),
PRIMARY KEY (SERIAL_NO));

提示以下两个错误:

第一个异常:[CREATE - 0 row(s), 0.000 secs] [Error Code: -104, SQL State: 42601]DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=INTEGER;R(50),

由于网上搜不到想要的答案,遂直接看问题,发现提示SQLERRMC=INTEGER;R(50) 于是去掉INTEGER的长度,将INTEGER(32) 改成了INTEGER。 问题解决

第二个异常:DB2 SQL Error: SQLCODE=-542, SQLSTATE=42831, SQLERRMC=SERIAL_NO, DRIVER=4.15.82

这个就让我找不到头脑,经搜索发现,DB2创建主键时,其主键sql必须设置不为空。 也就是要设置为: SERIAL_NO VARCHAR(50) not null, 而系统生成的没有not null

重新修改sql,再次执行 ok ,表创建完毕



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

大数据中国微信

QQ   

版权所有: Discuz! © 2001-2013 大数据.

GMT+8, 2024-11-15 21:32 , Processed in 0.056368 second(s), 24 queries .

快速回复 返回顶部 返回列表