MySQL修改主鍵屬性


前言:在學習MySQL的過程中,對於主鍵的屬性以及操作理解較模糊,在輸入多條修改主鍵屬性的語句后經常報錯,所以想整理一下這個過程中遇到的問題,作為自己的學習記錄,可能都是基礎知識,但也希望提高自己對數據庫的理解,同時也能幫助到其他人。


  主鍵約束在數據表中可以定義一個主鍵值,唯一確定表中的每一條記錄。每張表中只能有一個primary key,並且primary key不能為空。如果主鍵約束定義在不止一列,則一列的值可以重復,但是主鍵約束定義中的所有列組合必須唯一。

1. 添加主鍵約束:

alter table tbl_name add primary key (index_col_name,…);
#括號中為字段名,可以為一個或者多個

2. 在數據表已存在的情況下,且無主鍵,添加新的字段作為主鍵,並將該字段移到表格的第一列

alter table tbl_name add col_name col_definition (data type, null, default...) primary key first current_first_col_name;
# current_first_col_name表示當前數據表的第一列  

Notes:關鍵字first表示位於某一列的前面,如果加入的字段需要位於某一列的后面,可以使用after

 3. 數據表已存在,且有主鍵,修改主鍵的定義

關鍵字modify

alter table 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

alter table tbl_name change col_name col_name col_definition [first|after col_name]
#與modify的區別在於列表需要寫兩次列名,相當於原列名和新列名,所以change也可以用來修改列名

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM