首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

【MySql】表的约束

约束的最终目标:保证数据的完整性和可预期性所以需要更多的约束。...) values (NULL,NULL); ERROR 1048 (23000): Column 'class_name' cannot be null mysql> 默认值default 默认值:某一种数据会经常性的出现某个具体的值...,20); Query OK, 1 row affected (0.00 sec) default和NOT NULL冲突,而是互相补充的,当用户想插入的时候,无非就是NULL或者合法数据,当用户忽略这一列的时候...主键 primary key 主键:primary key用来唯一的约束该字段里面的数据,不能重复,不能为空,一张表中最多只能有一个。但是并不意味着一个表中的主键,只能添加给一列。...,上面的例子,我们创建外键约束,就正常建立学生表,以及班级表,该有的字段我们都有。

17330

第13章_约束

为了保证数据的完整性,SQL 规范以约束的方式对表数据进行额外的条件限制。...: 所有列的下面 默认和非空不支持,其他支持 可以(主键没有效果) 根据约束起的作用,约束可分为: NOT NULL 非空约束,规定某个字段不能为空 UNIQUE 唯一约束,规定某个字段在整个表中是唯一的...答:不是的 问题 2:建和建外键约束有什么区别? 答:建外键约束,你的操作(创建表、删除表、添加、修改、删除)会受到限制,从语法层面受到限制。...建外键约束,你的操作(创建表、删除表、添加、修改、删除)不受限制,要保证数据的 引用完整性 ,只能依 靠程序员的自觉 ,或者是 在Java程序中进行限定 。...问题 3:那么建和建外键约束和查询有没有关系? 答:没有 在 MySQL 里,外键约束是有成本的,需要消耗系统资源。对于大并发的 SQL 操作,有可能会不适合。

32330

db2 terminate作用_db2 truncate table immediate

类代码 01:警告 SQLSTATE 值 含义01002 发生 DISCONNECT 错误。01003 从列函数的参数消去 NULL 值。...类代码 36:无效游标规范 SQLSTATE 值 含义36001 不能为指定的 SELECT 语句定义敏感游标。 类代码 38 外部函数异常 表 28....类代码 40:事务回滚 SQLSTATE 值 含义40001 发生了伴随自动回滚的超时或死锁。40003 语句完整性未知。40504 由于系统错误导致工作单元被回滚。...42867 指定了冲突的选项。 42872 FETCH 语句子句与游标定义兼容。 42875 要在 CREATE SCHEMA 中创建的对象的限定符必须与模式名相同。 42877 不能限定该列名。...428B3 指定了无效的 SQLSTATE。 428B7 在 SQL 语句中指定的编号不在有效范围内。 428BO 不能为联合数据源创建方案。

7.5K20

MySQL学习笔记汇总(四)——表的约束、存储引擎、事务

一、表的约束 在创建表的时候,可以给表的字段添加相应的约束,添加约束的目的是为了保证表中数据的合法性、有效性、完整性。...常见的约束有哪些: 非空约束(not null):约束的字段不能为NULL 唯一约束(unique):约束的字段不能重复 主键约束(primary key):约束的字段既不能为NULL,也不能重复...,所以此字段值不能为空!!...not null约束只有列级约束。没有表级约束。...,主键字段中的数据不能为NULL,也不能重复 主键相关的术语 主键约束 : primary key 主键字段 : id字段添加primary key之后,id叫做主键字段 主键值 : id字段中的每一个值都是主键值

1.6K50

Mysql基础7-约束

一、约束的基本概念   1、概念:约束是作用于表中字段上的规则,用于限制储存在表中的数据   2、目的:保证数据库中的数据的正确性,有效性和完整性   3、分类 非空约束(not null):限制该字段的数据不能为...null 唯一约束(unique):保证该字段的所有数据都是唯一,不重复的 主键约束(primary key):主键是一行数据的唯一标识,要求非空且唯一 默认约束(default):保存数据时,如果未指定该字段的值...,则采用默认值 检查约束(check 8.0以后的新约束):保证字段满足某一个条件 外键约束(foreign key):用来让两张变的数据建立连接,保证数据的一致性和完整性 二、约束的案例实践   需求...需求3:name字段长度为10个字符并且不能为空。   需求4:age字段要大于0并且小于150.   需求5:address字段如果设,默认为广州。   需求6:stu_num唯一且不能为空。...说明3:这里提示了一个验证错误   验证4:验证address填写,默认值的设置 mysql> insert into stu_table (name, age, stu_num) values ("

30240

DB2错误代码_db2错误码57016

删除规则的参照约束的父表而且检查约束不允许NULL,所以DELETE不能发生 -544 23512 不能用ALTER添加检查约束,因为已存在的某行与该检查约束冲突 -545 23513 INSERT或者...UPDATE导致检查约束冲突 -546 42621 在CREATE或ALTER TABLE中指定的检查约束无效 -548 42621 因为指定的列而引起的检查约束无效 -549 42509 DYNAMICRULES...无效 -630 56089 不能为1型索引指定WHERE NOT NULL -631 54008 无效的外健;要么是比254个字节长,要么包含的列数多于40 -632 42915 指定的删除规则禁止把这个表定义为已制定表的从属表...-633 42915 无效删除规则;必须使用特定的强制删除规则 -634 42915 在这种情况下,DELETE CASCADE不允许 -635 42915 删除规则不能有差异或者不能为SET NULL...的删除规则的外健的可空列不能是分区索引的列 -640 56089 不能为这个表空间指定LOCKSIZE ROW,因为在该表空间中的表上定义了1型索引 -642 54021 唯一约束包含太多的列 -643

2.5K10

史上最全的 DB2 错误代码大全

删除规则的参照约束的父表而且检查约束不允许NULL,所以DELETE不能发生 -544 23512 不能用ALTER添加检查约束,因为已存在的某行与该检查约束冲突 -545 23513 INSERT或者...UPDATE导致检查约束冲突 -546 42621 在CREATE或ALTER TABLE中指定的检查约束无效 -548 42621 因为指定的列而引起的检查约束无效 -549 42509 DYNAMICRULES...无效 -630 56089 不能为1型索引指定WHERE NOT NULL -631 54008 无效的外健;要么是比254个字节长,要么包含的列数多于40 -632 42915 指定的删除规则禁止把这个表定义为已制定表的从属表...-633 42915 无效删除规则;必须使用特定的强制删除规则 -634 42915 在这种情况下,DELETE CASCADE不允许 -635 42915 删除规则不能有差异或者不能为SET NULL...的删除规则的外健的可空列不能是分区索引的列 -640 56089 不能为这个表空间指定LOCKSIZE ROW,因为在该表空间中的表上定义了1型索引 -642 54021 唯一约束包含太多的列 -643

4.4K30

MySQL表的完整性约束

约束条件与数据类型的宽度一样,都是可选参数,主要分为以下几种: # NOT NULL :非空约束,指定某列不能为空; # UNIQUE : 唯一约束,指定某列或者几列组合不能重复 # PRIMARY...KEY :主键,指定该列的值可以唯一地标识该列记录 # FOREIGN KEY :外键,指定该行记录从属于主表中的一条记录,主要用于参照完整性 返回顶部 NOT NULL 是否可空,null表示空,非字符串...mysql> insert into t12 values (null); ERROR 1048 (23000): Column 'id' cannot be null mysql> insert into...AUTO_INCREMENT 约束字段为自动增长,被约束的字段必须同时被key约束 ? ?...方式 在父表上update/delete记录时,将子表上匹配记录的列设为null 要注意子表的外键列不能为not null .

3.5K20

数据库SQL小技巧大揭秘:IGNORE选项让你的数据处理更从容

主键或唯一键冲突 1.1 初始化测试表并初始化数据 mysql> create table test1(id int not null primary key, card_no varchar(10)...插入一个表中已存在的主键数据时,如果添加ignore,则会报主键冲突 mysql> insert into test1(id,card_no,name,c1) values(1,'1000000001...忽略非空约束 2.1 列出字段赋值为null时 当列出需赋值的字段,但是对其中的非空字段赋值为null时,结果如下: mysql> select * from test1; +----+------...,'aa'); ERROR 1048 (23000): Column 'name' cannot be null mysql> insert ignore into test1(id,card_no,...结语 总的来说,IGNORE 提供了一种在插入或更新时处理主键、唯一键冲突、非空约束字段未赋值、字段超长等异常时内部自动处理的方法,使得操作不因为某一行的冲突而中断,而是继续处理。

29110

mysql的建表语句_mysql如何查询建表语句

select * from Course; 由于设置了外键,根据参照完整性规则,外码要么为空,要么为有效值。...当插入的数据违反了这个规则,就会产生ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails...,在添加数据时也要遵循参照完整性规则。...最后,补充一个小知识:在很多大型大型公司中,包括阿里在内,都是建议使用外码约束的,原因是在外码约束的的前提下,删除和更新数据操作会很痛苦。...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

8.3K20

数据库对象

常见的数据库对象 表 : 存储数据的逻辑单元 数据字典 : 就是系统表, 存放数据库相关的信息 约束 : 执行数据校验的规则,用于保证数据完整性的规则 视图 :一个或者多个数据表里的数据的逻辑显示,试图并不存储数据...类型(有参无返回) 仅仅带有OUT类型(无参有返回) 即带有IN 又带有OUT (有参有返回) CREATE PROCEDURE 存储过程名(IN|OUT|INOUT 参数名 参数类型) ----如果写...name` VARCHAR(25) not NULL, age INT not null CHECK(age 0) ) 表级约束 CREATE TABLE student...比如说我们的主键不能为空,所以我们会通过使用NOT NULL的方式来设置, 如果说其他字段,比如学号 它具有唯一性, 所以我们可以通过使用UNIQUE来进行设置。...触发器通常用于实现数据完整性约束和业务逻辑,以及在数据发生变化时执行一些自定义的操作。

10310

MySQL和Oracle中唯一性索引的差别(r12笔记第83天)

于是我尝试删除这个唯一性索引,转而创建一个主键,但是这个操作竟然抛出了数据冲突的的错误。...insert into unique_test values(1,'aa'); ERROR 1062 (23000): Duplicate entry '1' for key 'id' 我们删除原来的索引...unique_test add unique key (id,name); 创建新的索引 > insert into unique_test values(1,'aa'); ERROR 1062 (23000...): Duplicate entry '1-aa' for key 'id' 可见唯一性约束是生效了,插入冲突的数据没有任何问题。...的地方上,这个是这个问题的根本,进一步来说,这个是唯一性索引和主键的一个差别,那就是主键约束相比唯一性约束来说,还有一个默认的属性,那就是not null 但是同样都是null的差别,MySQL和Oracle

1.3K60

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券