点击上方蓝字关注我们

点击上方蓝字关注我们






CREATE TABLE tb_user(id int AUTO_INCREMENT PRIMARY KEY COMMENT 'ID唯一标识',name varchar(10) NOT NULL UNIQUE COMMENT '姓名' ,age int check (age > 0 && age <= 120) COMMENT '年龄' ,status char(1) default '1' COMMENT '状态',gender char(1) COMMENT '性别');
insert into tb_user(name,age,status,gender) values ('Tom1',19,'1','男'),('Tom2',25,'0','男');insert into tb_user(name,age,status,gender) values ('Tom3',19,'1','男');insert into tb_user(name,age,status,gender) values (null,19,'1','男');insert into tb_user(name,age,status,gender) values ('Tom3',19,'1','男');insert into tb_user(name,age,status,gender) values ('Tom4',80,'1','男');insert into tb_user(name,age,status,gender) values ('Tom5',-1,'1','男');insert into tb_user(name,age,status,gender) values ('Tom5',121,'1','男');insert into tb_user(name,age,gender) values ('Tom5',120,'男');


CREATE TABLE 表名(字段名 数据类型,...[CONSTRAINT] [外键名称] FOREIGN KEY (外键字段名) REFERENCES 主表 (主表列名));
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名)REFERENCES 主表 (主表列名) ;
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段) REFERENCES 主表名 (主表字段名) ON UPDATE CASCADE ON DELETE CASCADE;

MySQL直到8.0近年的版本才开始让check约束真正生效,在此之前check约束虽然可以输入但是被忽略了。并且直到现在,MySQL对非法的日期、时间、时间戳数据仍然可以输入,还有不符合SQL标准的数据类型随意转换,这些都容易让应用系统的程序员无意中引入错误,不仅可能导致应用系统工作异常或者影响用户体验,而且会导致非法数据进入数据库系统,对后续的数据分析利用带来巨大困难。这些都是MySQL未来需要继续改进的。
泽拓昆仑Klustron在支持MySQL的协议和语法的同时,在数据有效性检查方面符合SQL标准,避免了上述MySQL的问题,可以确保Klustron管理的数据符合数据类型规范和用户定义的规则。

文章转载自KunlunBase 昆仑数据库,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。





