VMWare和Centos 7的開篇
阿新 • • 發佈:2021-07-05
1. SQL PRIMARY KEY 約束
primary key約束唯一標識資料庫表中的每條記錄。
主鍵必須包含唯一的值。
主鍵列不能包含NULL值。
每個表都應該有一個主鍵,並且每個表只能有一個主鍵。
2. create table 時的 SQL primary key 約束
下面的 SQL 在 “Persons” 表建立時在 “P_Id” 列上建立 primary key 約束:
MySQL:
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) )
SQL Server / Oracle / MS Access:
CREATE TABLE Persons ( P_Id int NOT NULL PRIMARY KEY, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) )
如果命名 primary key 約束,並定義多個列的 primary key 約束,使用下面的SQL語法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName) )
註釋:pk_PersonID 主鍵的值由兩列(P_Id、LastName)組成。
3. alter table 時的 SQL primary key約束
當表已被建立,如需在“P_Id”列建立 primary key 約束,使用下面的 SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons ADD PRIMARY KEY (P_Id)
定義多個列的 primary key 約束,使用下面的 SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
註釋:使用 alter table語句新增主鍵,必須把主鍵列宣告為不包含 NULL 值(在表首次建立時)。
4. 撤銷 primary key 約束
撤銷 primary key 約束,使用下面的 SQL:
MySQL:
ALTER TABLE Persons DROP PRIMARY KEY
SQL Server / Oracle / MS Access:
ALTER TABLE Persons DROP CONSTRAINT pk_PersonID
來自:菜鳥教程