首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >唯一、区分大小写的列

问唯一、区分大小写的列
EN

Stack Overflow用户
提问于 2017-02-04 19:02:09
回答 2查看 3K关注 0票数 5

我使用Laravel的模式生成器和mysql创建了一个独特的列。但是当我使用唯一的方法时,它是大小写不敏感的。我需要它是大小写敏感的。我怎么能这么做?

模式:

代码语言:javascript
复制
Schema::create('item', function (Blueprint $table) {
    $table->increments('id');
    $table->string('key')->unique();
    $table->timestamps();
});

首次进入数据库:

代码语言:javascript
复制
$i = new Item;
$i->key = "Random_Key";
$i->save();

第二次输入数据库(返回重复输入错误):

代码语言:javascript
复制
$i = new Item;
$i->key = "random_key";
$i->save();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-04 19:23:13

您需要使用字符集和排序规则来指定mySQL中区分大小写的列

Laravel拥有排序规则和字符集列修饰符 in mySQL用于这一目的。

因此,您可以使用类似于:$table->string('key')->charset('utf8')->collate('utf8_cs')->unique()

正如“任择议定书”所述,以下是对他起作用的原因:

$cs = $table->string('key')->unique();

代码语言:javascript
复制
$cs->collation = 'utf8_bin';
票数 10
EN

Stack Overflow用户

发布于 2019-06-26 18:37:41

如何设置列VARBINARY的类型?

DB::statement('ALTER TABLE item MODIFY id VARBINARY(64);');

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42044356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档