mysql自动编号_MySQL自动编号与主键
1、自動編號(AUTO_INCREMENT),必須與主鍵組合使用
默認情況下,起始值為1,增量也為1。
2、主鍵(PRIMARY KEY)
每張數據表只能存在一個主鍵
主鍵保證記錄的唯一性
主鍵自動為NOT NULL
3、AUTO_INCREMENT必須與主鍵一起使用,主鍵不一定必須與AUTO_INCREMENT一起使用。
mysql> CREATE TABLE tb3(
-> id SMALLINT UNSIGNEDAUTO_INCREMENT PRIMARY KEY,
-> username VARCHAR(30) NOT NULL
-> );
Query OK, 0 rows affected (0.35 sec)
mysql>
mysql> SHOW COLUMNS FROM tb3; #查看數據表結構
+----------+----------------------+------+-----+---------+----------------+
| Field ? ? ? ?| Type ? ? ? ? ? ? ? ? ? ? ? | Null | Key | Default ? | ? ? ? Extra ? ? ? ? ?|
+----------+----------------------+------+-----+---------+----------------+
| id ? ? ? ? ? ?| smallint(5) unsigned | NO ?| PRI ?| NULL ? ? ?| auto_increment |
| username | varchar(30) ? ? ? ? ? ? | NO ?| ? ? ? ?| NULL ? ? |
+----------+----------------------+------+-----+---------+----------------+
2 rows in set (0.14 sec)
mysql> INSERT tb3(useRname) VALUES('JOHN');
Query OK, 1 row affected (0.04 sec)
mysql> INSERT tb3(useRname) VALUES('Tom');
Query OK, 1 row affected (0.04 sec)
mysql> INSERT tb3(useRname) VALUES('Rose');
Query OK, 1 row affected (0.02 sec)
mysql> INSERT tb3(useRname) VALUES('Dimi tar');
Query OK, 1 row affected (0.04 sec)
mysql> SELECT * FROM tb3;
+----+----------+
| id | username |
+----+----------+
| 1 ?| JOHN ? ? ? |
| 2 ?| Tom ? ? ? ?|
| 3 ?| Rose ? ? ? ?|
| 4 ?| Dimi tar ? ?|
+----+----------+
4、創建一張表只有主鍵,沒有AUTO_INCREMENT
mysql> CREATE TABLE tb4(
-> id SMALLINT UNSIGNED PRIMARY KEY,
-> usename VARCHAR(20) NOT NULL
-> );
Query OK, 0 rows affected (0.22 sec)
mysql>
mysql> SHOW COLUMNS FROM tb4;
+---------+----------------------+------+-----+---------+-------+
| Field ? ? ? | Type ? ? ? ? ? ? ? ? ? ? ? ?| Null ? ?| Key | Default ? | Extra |
+---------+----------------------+------+-----+---------+-------+
|id ? ? ? ? | smallint(5) unsigned ?| NO ? ? | PRI | NULL ? ? ?| ? ? ? ? ?|
| usename | varchar(20) ? ? ? ? ? ? ?| NO ? ? | ? ? ? | NULL ? ? ?| ? ? ? ? ?|
+---------+----------------------+------+-----+---------+-------+
2 rows in set (0.07 sec)
主鍵允許賦值,但不允許存在兩個相同的值
mysql> INSERT tb4 VALUES(4, 'Tom');
Query OK, 1 row affected (0.03 sec)
mysql> INSERT tb4 VALUES(22, 'Tom');
Query OK, 1 row affected (0.05 sec)
mysql> SELECT * FROM tb4;
+----+---------+
| id ? ?| usename|
+----+---------+
| 4 ? ?| Tom ? ? ? |
|22 ?| Tom ? ? ? |
+----+---------+
2 rows in set (0.00 sec)
mysql> INSERT tb4 VALUES(22, 'Li');
ERROR 1062 (23000): Duplicate entry '22' for key 'PRIMARY'
總結
以上是生活随笔為你收集整理的mysql自动编号_MySQL自动编号与主键的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vba单元格批量赋值_Excel●VBA
- 下一篇: 百度文本审核api_利用百度ai实现文本