DB2 列為null,無法設定該列為主鍵
--建立表d,設定列dept 為 not null
db2inst1@sles11:~/sqllib> db2 "create table d (
dept char(3) not null ,
db2inst1@sles11:~/sqllib> db2 "create table d (
dept char(3) not null ,
deptname char(20) not null,
constraint c_dept_name unique (deptname)
) in mb_data1"
--新增主鍵成功
db2inst1@sles11:~/sqllib> db2 "alter table d add constraint p_d_dept primary key (dept)"
--刪除表
db2inst1@sles11:~/sqllib> db2 drop table d
--建立表d,列dept 允許為 null
db2inst1@sles11:~/sqllib> db2 "create table d (
dept char(3) ,
deptname char(20) not null,
constraint c_dept_name unique (deptname)
) in mb_data1"
DB20000I The SQL command completed successfully.
--設定主鍵報錯
db2inst1@sles11:~/sqllib> db2 "alter table d add constraint p_d_dept primary key (dept)"
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0542N The column named "DEPT" cannot be a column of a primary key or
unique key constraint because it can contain null values. SQLSTATE=42831
--新增not null 約束
db2inst1@sles11:~/sqllib> db2 "alter table d alter column dept set not null"
DB20000I The SQL command completed successfully.
--無法新增主鍵 為什麼呢?
db2inst1@sles11:~/sqllib> db2 "alter table d add constraint p_d_dept primary key (dept)"
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0668N Operation not allowed for reason code "7" on table "DB2INST1.D".
SQLSTATE=57016
-----------------------------------------------------------------------------------------
--解決方案:重組表
db2 reorg table db2inst1.d
) in mb_data1"
--新增主鍵成功
db2inst1@sles11:~/sqllib> db2 "alter table d add constraint p_d_dept primary key (dept)"
--刪除表
db2inst1@sles11:~/sqllib> db2 drop table d
--建立表d,列dept 允許為 null
db2inst1@sles11:~/sqllib> db2 "create table d (
dept char(3) ,
deptname char(20) not null,
constraint c_dept_name unique (deptname)
) in mb_data1"
DB20000I The SQL command completed successfully.
--設定主鍵報錯
db2inst1@sles11:~/sqllib> db2 "alter table d add constraint p_d_dept primary key (dept)"
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0542N The column named "DEPT" cannot be a column of a primary key or
unique key constraint because it can contain null values. SQLSTATE=42831
--新增not null 約束
db2inst1@sles11:~/sqllib> db2 "alter table d alter column dept set not null"
DB20000I The SQL command completed successfully.
--無法新增主鍵 為什麼呢?
db2inst1@sles11:~/sqllib> db2 "alter table d add constraint p_d_dept primary key (dept)"
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0668N Operation not allowed for reason code "7" on table "DB2INST1.D".
SQLSTATE=57016
-----------------------------------------------------------------------------------------
--解決方案:重組表
db2 reorg table db2inst1.d
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22661144/viewspace-1477211/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 為什麼索引無法使用is null和is not null索引Null
- MySQL為何不建議使用null列MySqlNull
- 表為多列為null的表之索引示例Null索引
- oracle group by與分組列為null空OracleNull
- 為何在nio模式下無法設定setSoTimeout模式
- 檢視SQLSERVER主鍵列SQLServer
- 設計開發時慎重決定列是否為空
- Java 定義長度為 0 的陣列 / 空陣列Java陣列
- 設計開發時慎重決定列是否為空(二)
- 為什麼處理有序陣列比無序陣列快?陣列
- 分支預測:為什麼有序陣列比無序陣列快?陣列
- oracle一列拆分為多列Oracle
- 主鍵列直方圖有用嗎?直方圖
- 自定義滑鼠設定-中鍵設定為後退
- 為什麼無法設定連結的高度和寬度
- Leetcode 陣列中和為給定值的最長子陣列LeetCode陣列
- 如何為 Ubuntu 24.04 LTS 設定固定 IP 地址 (圖形介面 / 命令列)Ubuntu命令列
- bootstrap 為什麼只能預設12列boot
- 搜尋條件設定為Is Null一定不走索引嗎?Null索引
- PHP陣列轉換為js陣列PHP陣列JS
- ORA-01758: 要新增必需的 (NOT NULL) 列, 則表必須為空Null
- 如何讓table表的null列由不走索引變為可走索引Null索引
- 為什麼hashtable不允許設定Null但是hashmap允許?NullHashMap
- VSCode彈窗無法應用,終端無法鍵入命令列解決方法VSCode命令列
- 無法完成遊標操作,因為在宣告該遊標後,所設定的選項發生了更改
- 設定ibus為預設輸入法
- 為什麼HashMap的鍵值可以為null,而ConcurrentHashMap不行?HashMapNull
- 對錶中的欄位設定了預設值,新增記錄後卻發現該欄位為nullNull
- SqlSugar code first 欄位為列舉型別,預設生成資料庫欄位為bigint如何設定為int型別SqlSugar型別資料庫
- SQLite設定主鍵自動增長及插入語法SQLite
- 尋找陣列中和為定值的兩個數陣列
- jQuery將當前陣列根據一定規則轉為其他陣列jQuery陣列
- oracle多列為空與多列不為空的區別小示例Oracle
- mysql資料庫其中一列為null,他會有什麼坑MySql資料庫Null
- minSdkVersion應該設定為15還是14
- 陣列二:使用陣列可變函式為陣列排序陣列函式排序
- CDC報錯:無法作為資料庫主體執行,因為主體 "dbo" 不存在資料庫
- PostgreSQL如何設定主鍵序列?SQL