我通过以下方式从jupyter实验室笔记本创建了示例表:
file_csv = 'data.csv'
df = pd.read_csv(file_csv)
df.insert(0, 'KEY_ID', df.index)
然后通过以下方式将表添加到ibm cloud上的db2:
%sql PERSIST df
在db2控制台中查看该表,它是在没有主键的情况下创建的,因此我尝试对其进行补救:
ALTER TABLE DF
ALTER COLUMN KEY_ID
SET NOT NULL;
并设置 KEY_ID
作为主键:
ALTER TABLE DF
ADD PRIMARY KEY(KEY_ID);
但是db2顽固地拒绝,错误如下:
internalerror:(ibm\u db\u dbi.internalerror)ibm\u db\u dbi::internalerror:exception('语句执行失败:[ibm][cli driver][db2/linux8664]sql0668n表“myid9999.df”上的原因代码“7”不允许执行操作。sqlstate=57016\r sqlcode=-668')
[sql:alter table df]表
添加主键(key_id);]
(此错误的背景信息:http://sqlalche.me/e/2j85)
1条答案
按热度按时间jdgnovmf1#
好的-我在输入问题的时候解决了它-但是我还是会发布它。您需要重新调整表(我猜是在将'key\ id'列props重置为not null之后),它只在如下运行时起作用:
但在那之后,alter命令就像一个符咒。