create table people
(
userid integer not null auto_increment primary key,
username varchar(12) not null,
age int
);
alter table people add (
constraint ckc_age
check (age between 15 and 50));
insert into people (username,age) values('aa',60);
insert into people (username,age) values('aa',40);
//无效
--添加范围约束
alter table tablename add check(性别 in ('M','F'))
alter table people add check(age between 15 and 50);
//无效
Check :用于控制字段的值范围。
在Sql Server、My Sql 支持的添加check 语法:
Create table myCheck
(
id nvarchar(32) not null,
age int not null,
check (age>15 and age <30)
)
//实验
insert into mycheck (id,age) values ('11',40);
//添加成功,证明约束没发挥作用
在Sql Server、Orcale、MS Access 支持的添加 check 语法:
Create table myCheck
(
id nvarchar(32) not null,
age int not null check (age>15 and age<30)
)
在Sql Server、Orcale、MS Access、My Sql 都支持的添加 check 语法:
Create table myChecka
(
id nvarchar(32) not null,
age int not null,
constraint checkName check (age<15 and age>30)
)
//实验
insert into mychecka (id,age) values ('11',40);
//添加成功,证明约束没发挥作用
在Sql Server、Orcale、MS Access、My Sql 的表已存在情况下,向表添加check约束的语法:
Alter table myCheck
add check (id='celly'); --这样定义是系统自定义 check约束名称。
Alter table myCheck
add constraint checkName check(id='celly'); --这样定义是自己自定义 check约束名称。
check失败的原因
这是因为mysql是不支持check的,虽然语法上不会报错是,分析建表语句的时候会被忽略.以下是从手册中摘出来的原文.
=============
Innodb存储引擎支持FOREIGN KEY和REFERENCES子句。Innodb存储引擎执行ADD [CONSTRAINT [symbol]] FOREIGN KEY (...) REFERENCES ... (...)。请参见15.2.6.4节,“FOREIGN KEY约束”。对于其它存储引擎,这些子句会被分析,但是会被忽略。对于所有的存储引擎,CHECK子句会被分析,但是会被忽略。请参见13.1.5节,“CREATE TABLE语法”。接受这些子句但又忽略子句的原因是为了提高兼容性,以便更容易地从其它SQL服务器中导入代码,并运行应用程序,创建带参考数据的表。请参见1.8.5节,“MySQL与标准SQL的差别”。
==============
注意:CHECK子句会被分析,但是会被忽略。
分享到:
相关推荐
创建与删除SQL约束或字段约束SQL约束控制 1)禁止所有表约束的SQL select ''alter table ''+name+'' nocheck constraint all'' fromwhere type=''U'' 2)删除所有表数据的SQL select ''TRUNCATE TABLE '...
MySQL SQL高级特性 字段约束-索引-视图-外键学习实践,很不错
MySQL高级特性字段约束-索引-视图-外键学习实践PDF文档;
mysql数据库字段约束
MySQL 字段约束 mysql 学 习 笔 记
删除字段及约束,SQL技巧; 删除字段及约束,SQL技巧 删除字段及约束,SQL技巧
Oracle数据库常用的字段约束
机构字段约束表2.xlsx
创建Oracle数据库的字段约束: 非空约束 唯一约束 对字段的取值的约束 默认值 外键约束 create table tab_class( class_id number primary key, class_name varchar2(10) not null unique ); create table...
ARCGIS 必填字段检查 对所加载图层数据进行检查,根据字段约束要求,对必填字段进行检查。
一个完整的字段包括字段名、数据类型和约束条件。MySQL 添加字段的语法格式如下: ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件]; 对语法格式的说明如下: <表名> 为数据表的名字; <新字段名> 为所要...
常用的sql语句。新建表、删除表、插入数据、删除数据、更新数据、新增字段、删除字段、修改字段、新建约束、删除约束,等等常用语句
SQL批量删除数据表中指定字段对应的所有约束
约束规则依然需要通过特性与实体属性成员结合才能实实现表及其字段的约束规则定义,这样实体与表的约束定义形成了紧密的耦合关系,因此在SqlSugar中间件解决这个问题前,本人通过权衡最终选择了EntityFrameworkCore...
对XML字段进行约束 SQL server 2005 xml schema
多种方法为sql 字段添加约束,方便大家以多种形式进行开发,是开发比较灵活
- 文件里介绍了MySQL的一些基本概念,如数据库范式、字段约束、函数、事务等。 - 还提供了SQL语句的详细语法,如SELECT、INSERT、UPDATE、DELETE等。 - 最后给出了Node.js操作MySQL数据库的代码示例。 适用人群: ...
2.2.4 设计表数据字段约束 2.2.5 查询表中的记录件数 2.3 根据表设计的SQL进行单表检索 2.4 重置表结构 2.5 取得快照...
实用sql语句(查重复,查表结构,查字段约束等)