我有一个名为" UserID"使用" varchar(10)"的类型。有没有办法将该列限制为仅接受大写字符?
答案 0 :(得分:2)
你问了
有没有办法强制[MySQL]列只接受大写字符?
没有约束设置可以这样做。
@vatev提出了一对触发器来改变数据以使其成为大写。那可能有用。但它会有性能成本。如果您使用不区分大小写的排序规则,MySQL会将您的列视为单个案例。大多数在数据中需要此类限制的开发人员使用其UPDATE和INSERT语句来强制执行这些限制。
INSERT INTO tab (col) VALUES (UPPER('data-item'))
会做到这一点。
答案 1 :(得分:0)
在创建表时,设置约束如下:
Text="{Binding text, UpdateSourceTrigger=PropertyChanged}"
这将设置一个仅接受大写数据的约束。
答案 2 :(得分:0)
安基·萨哈(Ankit Saha)的上述答案不太正确。这将设置一个CONSTRAINT,强制将字段全部大写:
CREATE TABLE my_table (
uc_field VARCHAR(30),
CONSTRAINT force_upper_case CHECK(BINARY uc_field = UPPER(uc_field))
);
如果要强制使用小写字母,只需将UPPER()
更改为LOWER()
已在mariadb 10.2上进行了测试,但可以在支持CHECK()
约束的任何版本的mysql / mariadb上使用。
答案 3 :(得分:-1)
尝试使用下面提到的查询: -
更新my_table SET my_column = UPPER(my_column)
一切顺利。