重复的键值违反了唯一约束,CakePHP

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重复的键值违反了唯一约束,CakePHP相关的知识,希望对你有一定的参考价值。

我已经设置了我的postgres数据库并应用了所有约束。我在所有桌子上都运行了蛋糕烘烤并开始测试。我收到了这个错误:

错误:SQLSTATE [23505]:唯一违规:7错误:重复键值违反唯一约束“fasciculos_pkey1”DETAIL:键(id)=(7)已存在。

SQL查询:

INSERT INTO“xconv2”。“fasciculos”(“created”,“user_id”,“revista_id”,“volume”,“issue”,“svol”,“snum”,“issate”,“scheme”,“reftype”, “cliente_id”,“output_packtype”,“modified”)VALUES('now()',4,144,'4','4','4','4','4','4','4 ',1,'/ var / www','2013-03-25')

pk(curr_val = 545)确实默认不是null和唯一约束,但是当我尝试使用add.ctp添加新记录时,cake不会考虑为PK创建的序列的下一个值。似乎只是重新开始...我认为这是缓存问题,但不确定。

有帮助吗?

答案

有几件事:

  • 我没有在SQL语句中看到键7或545;那么这些价值来自哪里呢?
  • created列填充'now()'作为字符串,而不是来自NOW()函数的值。在php代码中填入适当的日期时间(date('Y-m-d H:i:s')通常可以解决问题)。

无论如何,如果你在一个循环中插入记录,或者只是多个具有相同模型的记录,不要忘记在模型上调用create(),否则ID将是相同的。

以上是关于重复的键值违反了唯一约束,CakePHP的主要内容,如果未能解决你的问题,请参考以下文章

IntegrityError:重复键值违反唯一约束

Golang:重复键值违反唯一约束

django:IntegrityError:重复键值违反唯一约束

尽管存在检查,“重复键值违反了唯一约束”

Django Rest Framework:重复键值违反唯一约束

TypeORM - 重复键值违反唯一约束(可延迟 fk)