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

时间:2013-03-25 13:49:45

标签: sql postgresql cakephp constraints primary-key

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

  

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

SQL查询:

  

INSERT INTO“xconv2”。“fasciculos”(“created”,“user_id”,“revista_id”,   “卷”,“问题”,“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创建的序列的下一个值。似乎只是重新开始...我认为这是缓存问题,但不确定。

有任何帮助吗?

1 个答案:

答案 0 :(得分:0)

有几件事:

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

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