前言:在學習mysql的過程中,對於主鍵的屬性以及操作理解較模糊,在輸入多條修改主鍵屬性的語句後經常報錯,所以想整理一下這個過程中遇到的問題,作為自己的學習記錄,可能都是基礎知識,但也希望提高自己對資料庫的理解,同時也能幫助到其他人。
主鍵約束在資料表中可以定義乙個主鍵值,唯一確定表中的每一條記錄。每張表中只能有乙個primary key,並且primary key不能為空。如果主鍵約束定義在不止一列,則一列的值可以重複,但是主鍵約束定義中的所有列組合必須唯一。
1. 新增主鍵約束:
altertable tbl_name add
primary
key(index_col_name,…);
#括號中為欄位名,可以為乙個或者多個
2. 在資料表已存在的情況下,且無主鍵,新增新的字段作為主鍵,並將該字段移到**的第一列
altertable tbl_name add
col_name col_definition (data type, null, default...) primary
keyfirst current_first_col_name;
# current_first_col_name表示當前資料表的第一列
notes:關鍵字first表示位於某一列的前面,如果加入的字段需要位於某一列的後面,可以使用after
3. 資料表已存在,且有主鍵,修改主鍵的定義
關鍵字modify
altertable tbl_name modify col_name col_definition [
first|after col_name
]#在col_definition 宣告要修改的屬性,如要新增自動編號auto_increment
notes:
1) 此時不需要重新宣告主鍵屬性primary key,如果新增了則會報錯:主鍵重複;
2) 如果原有屬性中存在auto_increment,修改時需要加上auto_increment,否則auto_increment屬性被刪除
關鍵字change
altertable tbl_name change col_name
col_name col_definition [
first|after col_name
]#與modify的區別在於列表需要寫兩次列名,相當於原列名和新列名,所以change也可以用來修改列名
MySQL修改主鍵屬性
當資料表已存在,且有主鍵,修改主鍵的定義有如下兩種方法 關鍵字modify alter table tbl name modify col name col definition first after col name 在col definition 宣告要修改的屬性,如要新增自動編號auto i...
mysql修改主鍵屬性 mysql如何改變主鍵屬性
mysql改變主鍵屬性的方法 1 使用關鍵字modify,為 alter table tbl name modify.2 使用關鍵字change,為 alter table tbl name change.本教程操作環境 windows7系統 mysql8.0.22版,該方法適用於所有品牌電腦。my...
MySQL增加或修改字段 修改主鍵
1.在 中增加新的字段 alter table 表名 add 欄位名稱 字段型別 例子 alter table if customer order tab add message id decimal 12,0 not null 將新增的字段排在第一位 alter table if customer...