mysql中的主鍵約束是一種唯一約束,用于明確定義表中每行的唯一標(biāo)識(shí)符。可以通過使用primary key關(guān)鍵字或在創(chuàng)建表時(shí)指定來創(chuàng)建主鍵約束。主鍵可以是單列或復(fù)合列(由多個(gè)列組成),還支持自動(dòng)遞增主鍵,會(huì)在插入新行時(shí)自動(dòng)生成唯一值。主鍵約束確保了數(shù)據(jù)的完整性和準(zhǔn)確性,因?yàn)槊恳恍卸季哂形ㄒ坏闹怠?/p>
MySQL 中的主鍵約束
什么是主鍵約束?
主鍵約束是用于唯一標(biāo)識(shí)表中每行的數(shù)據(jù)的一種唯一約束。它強(qiáng)制表中的每一行都具有唯一的值,從而確保數(shù)據(jù)的完整性和準(zhǔn)確性。
如何創(chuàng)建主鍵約束?
在 MySQL 中,使用 PRIMARY KEY
關(guān)鍵字創(chuàng)建主鍵約束。語法如下:
<code class="sql">CREATE TABLE table_name ( column_name PRIMARY KEY );</code>
登錄后復(fù)制
或者,您可以在創(chuàng)建表時(shí)指定主鍵約束:
<code class="sql">CREATE TABLE table_name ( column_name1 INT NOT NULL, column_name2 VARCHAR(255) NOT NULL, PRIMARY KEY (column_name1, column_name2) );</code>
登錄后復(fù)制登錄后復(fù)制
復(fù)合主鍵
復(fù)合主鍵由兩個(gè)或多個(gè)列組成,它們共同形成表的唯一標(biāo)識(shí)符。語法與單列主鍵類似:
<code class="sql">CREATE TABLE table_name ( column_name1 INT NOT NULL, column_name2 VARCHAR(255) NOT NULL, PRIMARY KEY (column_name1, column_name2) );</code>
登錄后復(fù)制登錄后復(fù)制
自動(dòng)遞增主鍵
MySQL 支持自動(dòng)遞增主鍵,它會(huì)在插入新行時(shí)自動(dòng)為每個(gè)新行生成一個(gè)唯一值。要?jiǎng)?chuàng)建自動(dòng)遞增主鍵,請(qǐng)使用 AUTO_INCREMENT
關(guān)鍵字:
<code class="sql">CREATE TABLE table_name ( id INT NOT NULL AUTO_INCREMENT, column_name1 VARCHAR(255) NOT NULL, PRIMARY KEY (id) );</code>
登錄后復(fù)制
注意事項(xiàng)
主鍵列必須具有唯一值。
主鍵列不能為 NULL
。
主鍵約束可以顯式或隱式創(chuàng)建。
如果沒有指定主鍵約束,MySQL 會(huì)自動(dòng)選擇表中的第一個(gè)非空列作為隱式主鍵。