我使用Laravel的模式生成器和mysql创建了一个独特的列。但是当我使用唯一的方法时,它是大小写不敏感的。我需要它是大小写敏感的。我怎么能这么做?
模式:
Schema::create('item', function (Blueprint $table) {
$table->increments('id');
$table->string('key')->unique();
$table->timestamps();
});首次进入数据库:
$i = new Item;
$i->key = "Random_Key";
$i->save();第二次输入数据库(返回重复输入错误):
$i = new Item;
$i->key = "random_key";
$i->save();发布于 2017-02-04 19:23:13
您需要使用字符集和排序规则来指定mySQL中区分大小写的列
Laravel拥有排序规则和字符集列修饰符 in mySQL用于这一目的。
因此,您可以使用类似于:$table->string('key')->charset('utf8')->collate('utf8_cs')->unique()
正如“任择议定书”所述,以下是对他起作用的原因:
$cs = $table->string('key')->unique();
$cs->collation = 'utf8_bin';发布于 2019-06-26 18:37:41
如何设置列VARBINARY的类型?
DB::statement('ALTER TABLE item MODIFY id VARBINARY(64);');
https://stackoverflow.com/questions/42044356
复制相似问题