mysql中可以透過「ALTER TABLE 表名ADD PRIMARY KEY(欄位名稱);」語句在修改資料表時新增主鍵約束;當在修改表時要設定表中某個欄位的主鍵限制時,要確保設定成主鍵約束的欄位中值不能夠有重複的,並且要確保是非空的。
(推薦教學:mysql影片教學)
主鍵(PRIMARY KEY)的完整稱呼是「主鍵約束”,是 MySQL 中使用最頻繁的約束。一般情況下,為了方便 DBMS 更快的查找到表中的記錄,都會在表中設定一個主鍵。
在建立表格時設定主鍵約束
在 CREATE TABLE 語句中,透過 PRIMARY KEY 關鍵字來指定主鍵。
在定義欄位的同時指定主鍵,語法格式如下:
<字段名> <数据类型> PRIMARY KEY [默认值]
範例
在test_db 資料庫中建立tb_emp3 資料表,其主鍵為id,SQL 語句和運行結果如下。
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)
在修改表時新增主鍵約束
主鍵約束不僅可以在建立表的同時創建,也可以在修改表時新增。但是要注意的是,設定成主鍵約束的欄位中不允許有空值。
在修改資料表時新增主鍵約束的語法格式如下:
ALTER TABLE <数据表名> ADD PRIMARY KEY(<字段名>);
通常情況下,當在修改表時要設定表中某個欄位的主鍵約束時,請確保設定成主鍵約束的欄位中值不能夠有重複的,並且要確保是非空的。否則,無法設定主鍵約束。
範例
檢視 tb_emp2 資料表的表格結構,SQL 語句和執行結果如下所示。
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)
修改資料表 tb_emp2,將欄位 id 設定為主鍵,SQL 語句和執行結果如下。
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修改表時怎麼加入主鍵約束?的詳細內容。更多資訊請關注PHP中文網其他相關文章!