我尝试使用本手册Generating Unique Values in DB2 Universal Database中的示例,但遇到了以下问题。
我有两张桌子,
CREATE TABLE PC_LIST (
PC_ID CHAR(13) FOR BIT DATA NOT NULL,
PC_NAME VARCHAR(100) NOT NULL
PRIMARY KEY (ID)
);
第二张表
CREATE TABLE PC_DATA (
ID CHAR(13) FOR BIT DATA NOT NULL,
PC_ID CHAR(13) FOR BIT DATA NOT NULL,
PC_NAME VARCHAR(100) NOT NULL
PRIMARY KEY (ID),
FOREIGN KEY (PC_ID) REFERENCES PC_LIST(PC_ID)
);
我将记录添加到第一个表PC_LIST
没有任何问题,并使用INSERT
查询GENERATE_UNIQUE()
内部功能,一切正常。
当我尝试将记录添加到第二个表并从PC_LIST.PC_ID
复制值时,我收到错误Value "20150408131401000109000000 " is too long..
当我添加如下投射时:CAST('20150408131401000109000000' AS CHAR(13) FOR BIT DATA)
我收到The INSERT or UPDATE value of the FOREIGN KEY is not equal to any value of the parent key of the parent table
。
我做错了什么? 谢谢。
更新:
我用这个代码在PC_DATA
INSERT INTO PC_DATA
(
ID,
PC_ID,
PC_NAME
) VALUES (GENERATE_UNIQUE(), CAST('20150408131401000109000000' AS CHAR(13) FOR BIT DATA) ,'anatoly-pc');
当然PC_ID
我从PC_LIST
表中获取了它。