首页
学习
活动
专区
圈层
工具
发布

数据库 SQL 约束之 PRIMARY KEY

SQL 约束的定义 SQL 约束用于规定表中的数据规则。 如果存在违反约束的数据行为,行为会被约束终止。...SQL PRIMARY KEY 约束 PRIMRY KEY(主键) 约束唯一标识数据库表中的每条记录。 主键必须包含唯一的值。 主键列不能包含 NULL 值。...一)CREATE TABLE 时的 SQL PRIMARY KEY 约束 1、创建表时,定义单个列的 PRIMARY KEY 约束 数据库实例 2、创建表时,定义多个列的 PRIMARY KEY...约束 数据库实例 二)ALTER TABLE 时的 SQL PRIMARY KEY 约束 1、当表已被创建,定义单个列的 PRIMARY KEY 约束 数据库实例 2、当表已被创建,定义多个列的...PRIMARY KEY 约束 数据库实例 三)撤销 PRIMARY KEY 约束 数据库实例 至此,数据库 SQL PRIMARY KEY(主键) 约束就讲完啦,下一篇讲《数据库 SQL

59030

SQL PRIMARY KEY 约束- 唯一标识表中记录的关键约束

SQL UNIQUE 约束SQL UNIQUE 约束确保列中的所有值都是不同的。UNIQUE 和 PRIMARY KEY 约束都为列或一组列提供了唯一性的保证。...PRIMARY KEY 约束自动具有 UNIQUE 约束。每个表只能有一个 PRIMARY KEY 约束,但可以有多个 UNIQUE 约束。...SQL PRIMARY KEY 约束SQL PRIMARY KEY 约束唯一标识表中的每条记录。主键必须包含唯一的值,并且不能包含 NULL 值。...在 ALTER TABLE 时使用 SQL PRIMARY KEY要在表已经创建的情况下在 "ID" 列上创建主键约束,请使用以下 SQL:对于 MySQL / SQL Server / Oracle...删除 PRIMARY KEY 约束要删除主键约束,请使用以下 SQL:对于 MySQL:ALTER TABLE PersonsDROP PRIMARY KEY;对于 SQL Server / Oracle

3.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    我CA,一个SQL语句为啥只执行了一半?

    今天和大家简单聊聊MySQL的约束主键与唯一索引约束: PRIMARY KEY and UNIQUE Index Constraints 了解诡异异常。...触发约束检测的时机: (1)insert; (2)update; 当检测到违反约束时,不同存储引擎的处理动作是不一样的。 如果存储引擎支持事务,SQL会自动回滚。...来查看违反约束后的错误提示。 如果存储引擎不支持事务,SQL的执行会中断,此时可能会导致后续有符合条件的行不被操作,出现不符合预期的结果。...都不对,正确答案是:2, 5, 6, 10 第一行id=1,加1后,没有违反unique约束,执行成功; 第二行id=5,加1后,由于id=6的记录存在,违反uinique约束,SQL终止,修改失败;...总结 对于主键与唯一索引约束: (1)执行insert和update时,会触发约束检查; (2)InnoDB违反约束时,会回滚对应SQL; (3)MyISAM违反约束时,会中断对应的SQL,可能造成不符合预期的结果集

    1.3K30

    MySQL,不为人知的主键与唯一索引约束?(第12讲,超硬核)

    InnoDB主键与唯一索引约束 今天聊聊MySQL的主键与唯一索引约束: PRIMARY KEY and UNIQUE Index Constraints 文章不长,保证有收获。...通常可以使用: show warnings; 来查看违反约束后的错误提示。 case2:如果存储引擎不支持事务,SQL的执行会中断,此时可能会导致后续有符合条件的行不被操作,出现不符合预期的结果。...都不对,正确答案是:2, 5, 6, 10 第一行id=1,加1后,没有违反unique约束,执行成功; 第二行id=5,加1后,由于id=6的记录存在,违反uinique约束,SQL终止,修改失败;...总结,对于主键与唯一索引约束: 1. 执行insert和update时,会触发约束检查; 2. InnoDB违反约束时,会回滚对应SQL; 3....MyISAM违反约束时,会中断对应的SQL,可能造成不符合预期的结果集; 4. 可以使用 insert … on duplicate key 来指定触发约束时的动作; 5.

    16710

    【Java】已解决:`java.sql.SQLIntegrityConstraintViolationException: SQL`

    在使用Java进行数据库操作时,java.sql.SQLIntegrityConstraintViolationException是一种常见的异常,通常发生在插入、更新或删除数据时违反了数据库的完整性约束...一、分析问题背景 java.sql.SQLIntegrityConstraintViolationException通常在操作数据库时出现,尤其是在对数据表执行插入、更新或删除操作时违反了数据库的完整性约束...常见的完整性约束包括主键约束(Primary Key Constraint)、唯一约束(Unique Constraint)、外键约束(Foreign Key Constraint)等。...数据一致性问题:可能在批量操作或事务处理中未考虑到数据的一致性,导致违反约束。...使用合适的SQL语句:使用INSERT IGNORE或ON DUPLICATE KEY UPDATE等SQL语句可以在某些情况下避免约束冲突。

    1.5K10

    SQL基础--> 约束(CONSTRAINT)

    NN:NOT NULL 非空约束,比如nn_emp_sal UK:UNIQUE KEY 唯一约束 PK:PRIMARY KEY 主键约束 FK:FOREIGN KEY 外键约束 CK...; --建表时创建约束,没有指定约束名,则系统将自动命名约束名 SQL> CREATE TABLE tb_constraint_1 2 ( 3 empno NUMBER PRIMARY KEY...ENABLE子句可将当前无效的约束启用 当定义或启用UNIQUE或PRIMARY KEY约束时系统会自动创建UNIQUE或PRIMARY KEY索引 --启用约束时不支持CASCADE,对被级联禁用的约束应根据需要逐个启用...KEY CASCADE --使用drop primary key cascade删除主表主键及从表外键 SQL> ALTER TABLE tb_dept 2 DROP PRIMARY KEY...--为表添加主键约束并启用延迟约束 SQL> ALTER TABLE tb_cust 2 ADD CONSTRAINT pk_tb_cust_custid PRIMARY KEY(custid)

    2.4K20

    haue数据库原理第一次实验

    : 操作步骤如下: CREATE TABLE Student ( Sno CHAR(8) PRIMARY KEY COMMENT '学号', Sname VARCHAR(20) NOT NULL UNIQUE...语句创建表(10分) 1)创建Course表 Course表结构及其约束为: 创建Course表SQL语句如下: CREATE TABLE Course ( Cno CHAR(5) PRIMARY...NULL COMMENT '成绩', Semester CHAR(5) COMMENT '开课学期', Teachingclass CHAR(8) COMMENT '教学班', PRIMARY KEY...如果Student表中的学号字段被定义为唯一键(Unique Key)或主键(Primary Key),那么尝试插入具有相同学号的记录将导致违反唯一性约束。...数据库会拒绝这种插入操作,并返回一个错误,通常是“违反唯一性约束”或“主键冲突”的错误消息。这是因为唯一键或主键的目的是确保表中的每一行都有一个唯一的标识符。 已经打开的表能删除吗? 可以删除

    32010

    软件测试|一篇文章带你深入理解SQL约束

    下面我们将深入探讨SQL约束的重要性、常见类型和应用。常见的SQL约束主键约束(Primary Key Constraint)主键约束用于标识数据库表中唯一标识每一行数据的列。...主键约束确保了数据的唯一性和一致性,常用于连接表和进行数据查找操作。外键约束(Foreign Key Constraint)外键约束用于定义表之间的关系,建立引用完整性。...通过定义合适的约束条件,可以确保数据满足预期的规则,减少数据冲突和错误。错误处理SQL约束还能够捕获并处理数据操作过程中的错误。...当违反约束条件时,数据库会返回错误信息,提示开发人员进行相应的处理和修复。...例如,Oracle 可以使用 DROP PRIMARY KEY关键字删除主键约束:ALTER TABLE EMPLOYEES DROP PRIMARY KEY;有些数据库也允许暂时禁用约束。

    89620

    玩转Mysql系列 - 第20篇:异常捕获及处理详解

    需求背景 我们在写存储过程的时候,可能会出现下列一些情况: 插入的数据违反唯一约束,导致插入失败 插入或者更新数据超过字段最大长度,导致操作失败 update影响行数和期望结果不一致 遇到上面各种异常情况的时...KEY); 异常分类 我们将异常分为mysql内部异常和外部异常 mysql内部异常 当我们执行一些sql的时候,可能违反了mysql的一些约束,导致mysql内部报错,如插入数据违反唯一约束,更新数据超时等...表中的数据,然后调用存储过程proc1,由于test1表中的a字段是主键,插入第二条数据时违反了a字段的主键约束,mysql内部抛出了异常,导致第二条数据插入失败,最终只有第一条数据插入成功了。...外部异常 外部异常不是由mysql内部抛出的错误,而是由于sql的执行结果和我们期望的结果不一致的时候,我们需要对这种情况做一些处理,如回滚操作。...总结 异常分为Mysql内部异常和外部异常 内部异常由mysql内部触发,外部异常是sql的执行结果和期望结果不一致导致的错误 sql内部异常捕获方式 DECLARE CONTINUE HANDLER

    3K41

    MySQL 主从复制异常?试试 pt-slave-repair 吧!

    由于业务之前的不当操作,导致主从数据违反了唯一性约束,进而出现了 1062 错误。 痛点 这些问题,说起来大家都知道怎么回事,也知道怎么处理。...1062 错误为主从同步时主键冲突提示,表示尝试插入或更新数据时违反了唯一约束。...MySQL 主从复制 1062 错误的根本处理办法 1062错误主要是违反了已唯一性约束,在主从强一致性要求比较高的情况下,需要在从库删除主键冲突的这条数据。...# 主库: CREATE TABLE t2 ( id INT PRIMARY KEY, -- 主键,唯一约束 name VARCHAR(100) ); INSERT INTO t2...on table test.t2; Duplicate entry '3' for key 'PRIMARY', Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY

    59610

    Percona Toolkit系列 — pt-fk-error-logger

    前言 pt-fk-error-logger,通过定时拉取和解析show engine innodb status相关信息,并将错误信息打印在屏幕 或 写到日志文件 或 写到表,从而实现将所有发生的违反外键约束错误都保存下来...--password:-p,密码 --charset:-A,字符集 --database:-D,数据库 --ask-pass:提示手动输入密码 --daemonize:后台运行 --dest:指定存储违反外键约束错误的表...--columns:违反外键约束错误存储表的列信息 --log:指定存储违反外键约束错误的日志文件 --run-time:运行时间,默认永久 --interval:运行间隔,默认30s --iterations...:运行次数,默认无限 (3)DSN选项 h:IP地址 P:端口 S:套接字文件 u:用户名 p:密码 A:字符集 D:数据库 t:表 场景模拟 (1)创建存储违反外键约束错误的库和表 mysql> show...91778438752-304093; (total 60 bytes); 2 rows in set (0.00 sec) 总结 通过pt-fk-error-logger这个工具,可以将数据库中违反外键约束的错误

    1.1K110
    领券