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
- 檢視SQLSERVER主鍵列SQLServer
- Java 定義長度為 0 的陣列 / 空陣列Java陣列
- Leetcode 陣列中和為給定值的最長子陣列LeetCode陣列
- VSCode彈窗無法應用,終端無法鍵入命令列解決方法VSCode命令列
- 分支預測:為什麼有序陣列比無序陣列快?陣列
- 自定義滑鼠設定-中鍵設定為後退
- oracle一列拆分為多列Oracle
- 如何為 Ubuntu 24.04 LTS 設定固定 IP 地址 (圖形介面 / 命令列)Ubuntu命令列
- 為什麼HashMap的鍵值可以為null,而ConcurrentHashMap不行?HashMapNull
- 為什麼hashtable不允許設定Null但是hashmap允許?NullHashMap
- bootstrap 為什麼只能預設12列boot
- 不能使用列舉類作為unordered_map鍵
- PHP陣列轉換為js陣列PHP陣列JS
- SQLite設定主鍵自動增長及插入語法SQLite
- SqlSugar code first 欄位為列舉型別,預設生成資料庫欄位為bigint如何設定為int型別SqlSugar型別資料庫
- mysql資料庫其中一列為null,他會有什麼坑MySql資料庫Null
- 尋找陣列中和為定值的兩個數陣列
- PostgreSQL如何設定主鍵序列?SQL
- 去除陣列中的 null 值陣列Null
- 索引與null(一):單列索引索引Null
- 陣列二:使用陣列可變函式為陣列排序陣列函式排序
- Visio2016裡應該如何對狀態列進行設定
- Excel將一列資料變為兩列Excel
- java大陣列劃分為若干小陣列Java陣列
- python實現給定一個數和陣列,求陣列中兩數之和為給定的數Python陣列
- CDC報錯:無法作為資料庫主體執行,因為主體 "dbo" 不存在資料庫
- 模型的 save() 方法無法使用佇列?模型佇列
- 如何在Oracle表中選擇主鍵列BWOracle
- QTableWidget 設定列寬樣式QT
- win10怎麼設定ftp為主動訪問模式_win10設定ftp為主動訪問模式教程Win10FTP模式
- win10怎麼把英文設定為預設輸入法_win10設定輸入法預設為英文教程Win10
- vxe-table 列寬拖拽模式設定,自適應列寬,固定列寬模式
- 將字串陣列轉換為浮點數陣列字串陣列
- MySQL NOT NULL列用 WHERE IS NULL 也能查到資料的原因MySqlNull
- Java物件為空時,不顯示該物件屬性,或者將null轉換為""Java物件Null
- 再學JavaScript ES(6-10)全版本語法大全(4)- 偽陣列轉換為陣列JavaScript陣列
- 主鍵為聯合主鍵時,索引B+樹結構索引