2012-03-04 99 views
3

我正在學習Mysql,我正在創建數據庫。因此,在查看幾個網站之後,主鍵的定義如下:MYSQL - 什麼是主鍵?

PRIMARY KEY約束唯一標識數據庫表中的每條記錄。

,並使用這樣的:

CREATE TABLE Persons 
(
    P_Id int NOT NULL, 
    LastName varchar(255) NOT NULL, 
    FirstName varchar(255), 
    Address varchar(255), 
    City varchar(255), 
    PRIMARY KEY (P_Id)   //primary key is on this line 
) 

不過,我仍然不知道它的用途以及爲什麼我們需要它。所以我的問題是。

有人可以向我解釋一個主鍵是什麼(基本英語),爲什麼我們需要一個,它用於什麼?

謝謝你。

+0

唯一困難的部分是......其他問題是這個重複的? – 2012-03-04 00:30:20

+0

可能重複[主鍵,唯一鍵和索引在MySQL中有什麼區別?](http://stackoverflow.com/questions/3844899/whats-the-difference-between-primary-key-unique-key-and -index-in-mysql) – 2012-03-04 00:33:27

回答

4

A primary keycolumn,其定義爲每行唯一標識

此外,通過將列定義爲PRIMARY KEY,可以在定義referencial integrity約束時將其引用爲其他表中的foreign key

+0

+1您可能還會發現http://stackoverflow.com/questions/8038641/please-confirm-my-use-of-primary-key-and-unique-index/8038647#8038647有用。 – 2012-03-04 00:34:29

2

主鍵是行的唯一標識符。它通常由數據庫管理系統自動分配(如果您爲該值指定了自動增量)。因此,如果您擁有組織中的人員數據庫,則其主鍵可能是其員工編號。每次添加員工時,他們都會收到一個獨特的員工編號,通常是以前的員工編號+1。

沒有主鍵您無法區分名爲約翰史密斯的兩名員工(沒有其他信息)希望這是足夠清晰的。

+0

我會說'有時由dbms分配'而不是'正常',但在其他方面同意。 – 2012-03-04 00:35:53

+0

在上面的例子中,如果你想爲數據庫中的每一個新行(entry)自動分配一個主鍵(唯一標識符),你可以製作第三行(左括號後的第一行):'P_Id INT NOT NULL AUTO_INCREMENT' – mattfryercom 2012-03-04 00:37:58

+0

好的,我明白了,謝謝大家! – r1nzler 2012-03-04 00:39:57