[英]DB2 add Primary Key to existing table created from Jupyter Lab via SQL magic 'PERSIST'
我通過以下方式從 Jupyter Lab 筆記本創建了示例表:
file_csv = 'data.csv'
df = pd.read_csv(file_csv)
df.insert(0, 'KEY_ID', df.index)
然后通過以下方式將表添加到 IBM 雲上的 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_db_dbi.InternalError) ibm_db_dbi::InternalError: Exception('Statement Execute Failed: [IBM][CLI Driver][DB2/LINUXX8664] SQL0668N 由於表“MYID9999.DF”上的原因代碼“7”,不允許操作。SQLSTATE =57016\r SQLCODE=-668')
[SQL:更改表 DF
添加主鍵(KEY_ID);]
(此錯誤的背景: http://sqlalche.me/e/2j85 )
好的 - 我實際上在輸入問題時解決了它 - 但無論如何我都會發布它。 您需要重組表(我猜是在將 'KEY_ID' 列屬性重置為 NOT NULL 之后)並且它僅在像這樣運行時才起作用:
CALL SYSPROC.ADMIN_CMD ('REORG TABLE DF')
但在那之后 ALTER 命令就像一個魅力。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.