如何解决插入数据时忽略重复的NULL字段
我在SendersTable.php
中有此代码:
public function validationDefault(Validator $validator): Validator
{
....
$validator
->scalar('public_key')
->maxLength('public_key',1024)
->allowEmptyString('public_key')
->add('public_key','unique',['rule' => 'validateUnique','provider' => 'table']);
....
}
然后,我在表中添加了一个Behavior,该行为成功将''
替换为NULL
。
当我尝试向表中添加新行时,由于validateUnique
正在运行以下命令而失败:
SELECT 1 AS existing FROM senders Senders WHERE (Senders.public_key) IS NULL LIMIT 1
这就是问题所在。 public_key
是NULL
的行已经存在,并且public_key
有唯一的索引。因为MariaDB在唯一索引中支持多个NULL
,所以索引是可以的。
如何覆盖 validateUnique
的功能,使其在条件为SELECT
时不运行NULL
命令?
我正在运行CakePHP 4.1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。