Mysql之primary單列主鍵與復合主鍵

2021-10-20 10:11:32 字數 1868 閱讀 9949

儲存引擎(innodb):對於innodb儲存引擎來說,一張表必須有乙個主鍵。

1.單列主鍵

建立乙個表:

create

table t17(

id int

primary

key,

name char(16

))

往表內插入資料:

insert

into t17 values(1

,'egon'),

(2,'elex'

)

執行,插入成功,我們來看下表:

再插入一條資料:

insert

into t17 values(2

,'elx'

)

執行——報錯:

因為id設定了主鍵,已經存在了(這裡類似unique)。

注:如果這樣建立表 表也會顯示為primary

create

table t18(

id int

notnull

unique

, name char(16

))

如果不設定id,繼續插入資料:

insert

into t17(name)

values

('wxx'

)

執行,檢視資料:

執行一次,name為』wxx』的id是0,但是執行第二次時候,就會報錯,因為已經存在了:

2.復合主鍵

復合主鍵和unique的聯合唯一很像,下邊我們來看看。

建立乙個表:

create

table t19(

ip char(16

),port int

,primary

key(ip,port)

)

輸入插入語句,往表內插入資料:

insert

into t19 values

('192.168.11.10',80

),('192.168.11.10',80

)

執行——報錯:

因為插入的兩個內容相同,所以會報錯。下邊我們修改下:

insert

into t19 values

('192.168.11.10',80

),('192.168.11.10',81

)

執行成功,我們來看下表內容:

這裡二者port不同,執行成功。若ip不同port相同也可以執行成功,反正就是二者最多只能有乙個相同,和聯合唯一很相像。

享學筆記 Spring之 Primary註解使用

在spring 中使用註解,常使用 autowired,預設是根據型別type來自動注入的。但有些特殊情況,對同乙個介面,可能會有幾種不同的實現類,而預設只會採取其中一種的情況下 primary 的作用就出來了。下面是個簡單的使用例子。dao層 repository public class dao...

Java之單列集合

集合 集合類的特點 提供一種儲存空間可變的儲存模式,儲存的資料容量可以隨時發生改變 和陣列的區別 陣列是儲存同種資料型別 長度在定義後便不可變。集合分為單列集合 collection 和雙列集合 map collection集合的概述 是單列集合的頂層介面,它表示一組物件,這些物件也稱為collec...

Android之單列模式

單列模式簡單來說就是只有乙個例項,並且自己負責建立自己的物件。雙重鎖模式執行緒安全的兩個方面 執行控制 synchronized 和記憶體可見 volatile 單列模式 public class singleton 以例項為返回值的靜態的公有方法,靜態工廠方法 public static sing...