Mysql基礎教程 mysql進階

Mysql添加和刪除主鍵



添加主鍵


ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY[index_type] (字段名稱,...)


添加一個表


mysql> CREATE TABLE IF NOT EXISTS test12(
    -> id INT
    -> );
Query OK, 0 rows affected (0.34 sec)
mysql> DESC test12;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.01 sec)


添加主鍵


mysql> ALTER TABLE test12 ADD PRIMARY KEY(id);
Query OK, 0 rows affected (0.46 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC test12;
+-------+---------+------+-----+---------+-------+
| Field | Type   | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | NO   | PRI | 0    |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.01 sec)


在創建一個表


mysql> CREATE TABLE IF NOT EXISTS test13(
    -> id INT,
    -> card CHAR(18),
    -> username VARCHAR(20) NOT NULL
    -> );
Query OK, 0 rows affected (0.33 sec)
mysql> DESC test13;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| card     | char(18)    | YES  |     | NULL    |       |
| username | varchar(20) | NO   |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)


添加一個復合主鍵


mysql> ALTER TABLE test13 ADD PRIMARY KEY(id,card);
Query OK, 0 rows affected (0.55 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC test13;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)    | NO   | PRI | 0       |       |
| card     | char(18)   | NO   | PRI |         |       |
| username | varchar(20) | NO   |    | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)



刪除主鍵


ALTER TABLE tbl_name DROP PRIMARY KEY


刪除text12表的主鍵


mysql> ALTER TABLE test12 DROP PRIMARY KEY;
Query OK, 0 rows affected (0.70 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC test12;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | NO   |     | 0       |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.02 sec)


刪除text13的復合主鍵


mysql> ALTER TABLE test13 DROP PRIMARY KEY;
Query OK, 0 rows affected (0.60 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC test13;
+----------+-------------+------+-----+---------+-------+
| Field    | Type      | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)    | NO   |     | 0       |       |
| card     | char(18)   | NO   |     |        |       |
| username | varchar(20) | NO   |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)


給text12 添加主鍵(ID)


mysql> ALTER TABLE test12 ADD CONSTRAINT symbol PRIMARY KEY index_type(id);
Query OK, 0 rows affected (0.50 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC test12;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | NO   | PRI | 0       |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.01 sec)


創建一個text14


mysql> CREATE TABLE IF NOT EXISTS test14(
    -> id INT UNSIGNED KEY AUTO_INCREMENT
    -> );
Query OK, 0 rows affected (0.26 sec)
mysql> DESC test14;
+-------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra          |
+-------+------------------+------+-----+---------+----------------+
| id    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
+-------+------------------+------+-----+---------+----------------+
1 row in set (0.03 sec)


刪除text14的主鍵


mysql> ALTER TABLE test14 DROP PRIMARY KEY ;
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key


去掉不了主鍵,只能去掉額外的屬性


mysql> ALTER TABLE test14 MODIFY id INT UNSIGNED;
Query OK, 0 rows affected (0.62 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC test14;
+-------+------------------+------+-----+---------+-------+
| Field | Type             | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+-------+
| id    | int(10) unsigned | NO   | PRI | 0       |       |
+-------+------------------+------+-----+---------+-------+
1 row in set (0.01 sec)


不是自增長的才可以刪除屬性


mysql> ALTER TABLE test14 DROP PRIMARY KEY;
Query OK, 0 rows affected (0.64 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC test14;
+-------+------------------+------+-----+---------+-------+
| Field | Type             | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+-------+
| id    | int(10) unsigned  | NO   |     | 0       |       |
+-------+------------------+------+-----+---------+-------+
1 row in set (0.01 sec)



【本文由麥子學院獨家原創,轉載請注明出處并保留原文鏈接】

logo
? 2012-2016 www.jvbprd.live
蜀ICP備13014270號-4 Version 5.0.0 release20160127

免費領取價值1888元求職寶典!

客服熱線 400-862-8862

回到頂部

彩票安徽25选5