SQL PRIMARY KEY 约束

SQL PRIMARY KEY 约束nbsp nbsp PRIMARYKEY 约束唯一标识数据库表中的每条记录 nbsp nbsp 主键必须包含唯一的值 nbsp nbsp 主键列不能包含 NULL 值 nbsp nbsp 每个表都应该有一个主键 并且每个表只能有一个主键 nbsp CREATETABLE 时的 SQLPRIMARYKE 约束下面的 SQL 在 Persions 表创建时在 P ld 列上创建 PRIMARYKEY 约束 MySQL C

    PRIMARY KEY 约束唯一标识数据库表中的每条记录。

    主键必须包含唯一的值。

    主键列不能包含NULL值。

    每个表都应该有一个主键,并且每个表只能有一个主键。

 

CREATE TABLE 时的 SQL PRIMARY KEY 约束

下面的SQL在”Persions”表创建时在”P_ld”列上创建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) )
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) )

注释:在上面的例子中,只有一个主键PRIMARY KEY(pk_PersonID)。然而,pk_PersonID的值是由两个列(P_Id和LastName)组成的。

 

 

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约束,并定义多个列的PRIMARY KEY 约束,请使用下面的SQL语法:

 

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)

注释:如果您使用 ALTER TABLE 语句添加主键,必须把主键列声明为不包含 NULL 值(在表首次创建时)。

 

 

 

撤销PRIMARY KEY 约束

如需撤销PRIMARY KEY 约束,请使用下面的SQL:

MySQL:

ALTER TABLE Persons DROP PRIMARY KEY

SQL Server / Oracle / MS Access:

ALTER TABLE Persons DROP CONSTRAINT pk_PersonID

 

 

撤销PRIMARY KEY约束时,不论约束条件为一列还是多列,对于MySQL,撤销都是

ALTER TABLE Persons DROP PRIMARY KEY

 

由于PRIMARY KEY唯一性,MYSQL处理办法简单。

但对于 SQL Server / Oracle / MS Access, 一个列

ALTER TABLE Persons DROP CONSTRAINT P_Id

若起约束名,也可如下多个列

 

ALTER TABLE Persons DROP CONSTRAINT pk_PersonID

 

参考:

https://www.yuque.com/docs/share/31a47ae0-804b-4c07-8123-bca00a2d9206

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/218795.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午11:28
下一篇 2026年3月17日 下午11:28


相关推荐

  • js也能写3D游戏?

    js也能写3D游戏?看完这本书《3DGameProgramingforKids》之后,发现3D游戏的学习,也可以使用javascript来写的。先要上这个网站https://threejs.org,然后下载它的three.js源码放到一个目录,比如js。然后放入这段代码: Myfirstthree.jsapp body{margin:0;} canvas{w

    2022年5月26日
    124
  • 求两个向量的夹角_数量积和向量积的公式

    求两个向量的夹角_数量积和向量积的公式如图所示,我们要计算任意两个向量之间的夹角。(图中的坐标数字是估计值,随手给定)python代码如下importmathAB=[1,-3,5,-1]CD=[4,1,4.5,4.5]EF=[2,5,-2,6]PQ=[-3,-4,1,-6]defangle(v1,v2):dx1=v1[2]-v1[0]dy1=v1[3]-v1[1]dx2=v2[2]-v2[…

    2026年3月12日
    2
  • <Win32_15>用纯C语言来实现WP8中磁贴动态翻转的功能「建议收藏」

    今年年初入手了一部诺基亚新款WP8手机——Lumia620经典蓝,用起来感觉很不错,很流畅、界面很清新到现在,用了大概有大半年时间了,一直很好奇WP8中磁贴动态翻转的实现算法——使用过WP8手机的朋友都知道,这个功能很有3D的效果,看起来感觉很不错但是,它到底是如何实现的呢? 今儿,我就来和大家一起剖析一下它的实现细节WP8中磁贴动态翻转功能细节:(1)将当

    2022年4月13日
    67
  • Linux系统安装tomcat7

    Linux系统安装tomcat7Linux上如果尚未安装JDK,可以参考博文https://mp.csdn.net/postedit/801814221.下载Linux版tomcat7,官网即可下载https://tomcat.apache.org/download-70.cgi2.确定好在Linux上你tomcat要放的路径,我的是/usr/tomcat,可以在/usr目录下mkdirtomcat3.将本地tomcat的文件…

    2022年5月24日
    39
  • javbus爬虫-老司机你值得拥有

    javbus爬虫-老司机你值得拥有起因有个朋友叫我帮忙写个爬虫,爬取javbus5上面所有的详情页链接,也就是所有的https://www.javbus5.com/SRS055这种链接,我一看,嘿呀,这是司机的活儿啊,我绝对不能

    2022年8月5日
    4
  • VLAN基础知识_vlan的基本原理

    VLAN基础知识_vlan的基本原理VLAN简介定义:VLAN(VirtualLocalAreaNetwork)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。VLAN内的主机间可以直接通信,而VLAN间不能直接通信,从而将广播报文限制在一个VLAN内。目的:以太网是一种基于CSMA/CD(CarrierSenseMultipleAccess/CollisionDetect…

    2022年8月10日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号