首頁 >資料庫 >mysql教程 >mysql怎麼修改列名為主鍵?

mysql怎麼修改列名為主鍵?

青灯夜游
青灯夜游原創
2020-09-28 09:33:222482瀏覽

mysql修改列名為主鍵的方法:使用「ALTER TABLE 資料表名ADD PRIMARY KEY(欄位名稱/列名);」語句設定即可;設定成主鍵約束的欄位/欄位要確保值不能有重複,且是非空的。

mysql怎麼修改列名為主鍵?

主鍵(PRIMARY KEY)的完整稱呼是“主鍵約束”,是 MySQL 中使用最為頻繁的限制。一般情況下,為了方便 DBMS 更快的查找到表中的記錄,都會在表中設定一個主鍵。

(推薦教學:mysql影片教學

使用主鍵應注意以下幾點:

  • 每個表只能定義一個主鍵。

  • 主鍵值必須唯一標識表中的每一行,且不能為 NULL,即表中不可能存在具有相同主鍵值的兩行資料。這是唯一性原則。

  • 一個欄位名稱只能在聯合主鍵欄位表中出現一次。

  • 聯合主鍵不能包含不必要的多餘欄位。當刪除聯合主鍵的某一欄位後,如果剩下的欄位所構成的主鍵仍然滿足唯一性原則,那麼這個聯合主鍵是不正確的。這是最小化原則。

在修改表時新增主鍵約束

#主鍵約束不僅可以在建立表的同時創建,也可以在修改表時新增。但是要注意的是,設定成主鍵約束的欄位中不允許有空值。

在修改資料表時新增主鍵約束的語法格式如下:

ALTER TABLE <数据表名> ADD PRIMARY KEY(<字段名/列名>);

檢視 tb_emp 資料表的表結構,SQL 語句和執行結果如下所示。

mysql> DESC tb_emp;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   |     | NULL    |       |
| name   | varchar(30) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.14 sec)

範例:

修改資料表 tb_emp,將欄位 id 設定為主鍵,SQL 語句和執行結果如下。

mysql> ALTER TABLE tb_emp
    -> ADD PRIMARY KEY(id);
Query OK, 0 rows affected (0.94 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_emp;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| name   | varchar(30) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.12 sec)

通常情況下,當在修改表時要設定表中某個欄位的主鍵約束時,要確保設定成主鍵約束的欄位中值不能夠有重複的,並且要保證是非空的。否則,無法設定主鍵約束。

相關推薦:php培訓

以上是mysql怎麼修改列名為主鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn