2013-03-25 110 views
0

我已经设置了我的postgres数据库填充并应用了所有约束。我跑遍了所有餐桌上的蛋糕,并开始测试。我得到这个错误:重复的键值违反了唯一的约束,CakePHP

Error: SQLSTATE[23505]: Unique violation: 7 ERROR: duplicate key value violates unique constraint "fasciculos_pkey1" DETAIL: Key (id)=(7) already exists.

SQL查询:

INSERT INTO "xconv2"."fasciculos" ("created", "user_id", "revista_id", "volume", "issue", "svol", "snum", "issuedate", "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)确实已经在默认情况下不为空和唯一约束,但是当我试图添加使用add.ctp新纪录,蛋糕不考虑为PK创建的下一个序列值。似乎它刚刚开始......我认为这是缓存问题,但不确定。

任何帮助?

回答

0

几件事情:

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

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

+0

这些值应该来自数据库,因为我创建了序列,默认值是nextval。我的id列是串行的,postgres默认创建序列。如果我为其他数据库创建相同的蛋糕它工作正常。我的意思是相同的数据库,相同的蛋糕,但不同的服务器..正如我所说...我认为这是缓存问题。 – 2013-03-28 15:11:28

相关问题