第一次用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 ,表创建完成