溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql修改表時如何添加主鍵約束

發(fā)布時間:2020-10-13 14:56:38 來源:億速云 閱讀:1383 作者:小新 欄目:MySQL數(shù)據(jù)庫

小編給大家分享一下mysql修改表時如何添加主鍵約束,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

mysql中可以通過“ALTER TABLE 表名 ADD PRIMARY KEY(字段名);”語句在修改數(shù)據(jù)表時添加主鍵約束;當在修改表時要設(shè)置表中某個字段的主鍵約束時,要確保設(shè)置成主鍵約束的字段中值不能夠有重復的,并且要保證是非空的。

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

在創(chuàng)建表時設(shè)置主鍵約束

在 CREATE TABLE 語句中,通過 PRIMARY KEY 關(guān)鍵字來指定主鍵。

在定義字段的同時指定主鍵,語法格式如下:

<字段名> <數(shù)據(jù)類型> PRIMARY KEY [默認值]

示例

在 test_db 數(shù)據(jù)庫中創(chuàng)建 tb_emp3 數(shù)據(jù)表,其主鍵為 id,SQL 語句和運行結(jié)果如下。

mysql> CREATE TABLE tb_emp3
    -> (
    -> id INT(11) PRIMARY KEY,
    -> name VARCHAR(25),
    -> deptId INT(11),
    -> salary FLOAT
    -> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp3;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| name   | varchar(25) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.14 sec)

在修改表時添加主鍵約束

主鍵約束不僅可以在創(chuàng)建表的同時創(chuàng)建,也可以在修改表時添加。但是需要注意的是,設(shè)置成主鍵約束的字段中不允許有空值。

在修改數(shù)據(jù)表時添加主鍵約束的語法格式如下:

ALTER TABLE <數(shù)據(jù)表名> ADD PRIMARY KEY(<字段名>);

通常情況下,當在修改表時要設(shè)置表中某個字段的主鍵約束時,要確保設(shè)置成主鍵約束的字段中值不能夠有重復的,并且要保證是非空的。否則,無法設(shè)置主鍵約束。

示例

查看 tb_emp2 數(shù)據(jù)表的表結(jié)構(gòu),SQL 語句和運行結(jié)果如下所示。

mysql> DESC tb_emp2;
+--------+-------------+------+-----+---------+-------+
| 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)

修改數(shù)據(jù)表 tb_emp2,將字段 id 設(shè)置為主鍵,SQL 語句和運行結(jié)果如下。

mysql> ALTER TABLE tb_emp2
    -> ADD PRIMARY KEY(id);
Query OK, 0 rows affected (0.94 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_emp2;
+--------+-------------+------+-----+---------+-------+
| 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)

看完了這篇文章,相信你對mysql修改表時如何添加主鍵約束有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI