0

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

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

SQL查询:

插入“xconv2”。“fasciculos”(“created”、“user_id”、“revista_id”、“volume”、“issue”、“svol”、“snum”、“issuedate”、“scheme”、“reftype”、 "cliente_id", "output_packtype", "modified") 值 ('now()', 4, 144, '4', '4', '4', '4', '4', '4', '4 ', 1, '/var/www', '2013-03-25')

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

有什么帮助吗?

4

1 回答 1

1

有几件事:

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

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

于 2013-03-26T00:03:18.207 回答