MySQL 列上大写字母的约束

use*_*539 5 mysql

我有一个名为UserID类型的列varchar(10)。有没有办法限制该列只接受大写字符?

O. *_*nes 2

你问

有没有办法强制[MySQL]列只接受大写字符?

没有任何限制设置可以这样做。

@vatev 建议使用一对触发器来更改数据以使其大写。那可行。但它会产生性能成本。

如果您使用不区分大小写的排序规则,MySQL 会将您的列视为单一大小写。大多数需要在数据中进行此类限制的开发人员都使用 UPDATE 和 INSERT 语句来强制实施这些限制。

INSERT INTO tab (col) VALUES (UPPER('data-item')) 
Run Code Online (Sandbox Code Playgroud)

会成功的。