如何解决什么是查询用于在创建表时检查 upper() 的约束
在下面的 SQL 查询约束不起作用,它不检查大写并将小写值发送到数据库 帮助我摆脱这种情况
CREATE TABLE CLIENT_MASTER(
client_no VARCHAR(6) NOT NULL PRIMARY KEY CHECK (client_no like 'c%'),name CHAR(20) NOT NULL CHECK (name= UPPER(name)),address_1 VARCHAR(20),address_2 VARCHAR(20),city VARCHAR(15),state VARCHAR(15),pin_code NUMERIC(6),remarks INT(10),bal_due NUMERIC(8,2)
);
解决方法
试试下面的constraint
CREATE TABLE CLIENT_MASTER(
client_no VARCHAR(6) NOT NULL PRIMARY KEY CHECK (client_no like 'c%'),name CHAR(20) NOT NULL
CONSTRAINT force_upcase CHECK(BINARY name = UPPER(name)),address_1 VARCHAR(20),address_2 VARCHAR(20),city VARCHAR(15),state VARCHAR(15),pin_code NUMERIC(6),remarks INT(10),bal_due NUMERIC(8,2)
);
在接下来的两行中,第二行失败了:
INSERT INTO CLIENT_MASTER(client_no,name) VALUES ('c123','ABC');
INSERT INTO CLIENT_MASTER(client_no,name) VALUES ('c456','alpha in lower');
Check constraint 'force_upcase' is violated.
Try it here (MySQL 8)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。