2013-10-16 107 views
1

我今天在使用Drupal 7.22的网站上遇到很大问题。PDOException:SQLSTATE [23000]:完整性约束违规:1062键'PRIMARY'的重复条目'308':INSERT INTO {node}

此问题出现在从管理员创建的新节点上。

PDOException:SQLSTATE [23000]:完整性约束违规:1062重复键'PRIMARY'的条目'308':INSERT INTO {节点}(nid,vid,type,language,title,uid,status,created,changed (db_insert_placeholder_0,db_insert_placeholder_1,db_insert_placeholder_2,db_insert_placeholder_3,db_insert_placeholder_4,db_insert_placeholder_5,db_insert_placeholder_6,db_insert_placeholder_7,db_insert_placeholder_8,db_insert_placeholder_9,db_insert_placeholder_10,db_insert_placeholder_11, db_insert_placeholder_12,:db_insert_placeholder_13);数组([:db_insert_placeholder_0] => 308 [:db_insert_placeholder_1] => 308 [:db_insert_placeholder_2] => evenements [:db_insert_placeholder_3] => fr [:db_insert_placeholder_4] => TEST [:db_insert_placeholder_5] => 1 [:db_insert_placeholder_6] => 0 [:db_insert_placeholder_7] => 1381931095 [:db_insert_placeholder_8] => 1381931095 [:db_insert_placeholder_9] => 1 [:db_insert_placeholder_10] => 0 [:db_insert_placeholder_11] => 0 [:db_insert_placeholder_12] => 0 [:db_insert_placeholder_13] => 0 )dans drupal_write_record()(ligne 7136 dans /var/www/carioca/includes/common.inc)。

我检查了数据库和最后一个节点ID是294

有没有人有一个想法如何解决这个问题呢?

感谢您的帮助。

回答

-1

当执行下面的mysql查询时,你有结果吗?

SELECT * FROM node WHERE nid = 308; 
+0

没有,如上所述,表中的最后一个id是294. – Skysoft

+0

oops !!!事实上,这是一个导致问题的规则。 如果未发布节点,则使用此规则从节点中删除节点。 使用此规则时,会在节点中更改一些值,然后节点被保存。 我已经取消了规则,现在一切正常。 对不起,我只需要找到另一种方法从网站地图中正确删除节点。 – Skysoft

+0

好吧:),奇怪的是,你不希望被包含在站点地图中的节点的nid更改。您使用哪个模块生成站点地图? –

1

如果您有您的数据库phpMyAdmin的,看看表:节点& node_revision。可能是因为你有不同的索引,并导致该ID不能被插入。

您的问题不是已经有一个DB中的条目,但该节点& node_revision(或其他表)与其他表具有不同的状态。数据库中的数据似乎不一致。

您的模块中是否有自定义表柄?修复Id问题,并使用node_load或user_load Drupal API函数来代替自定义数据库调用。

如果您在Drupal 6上查看node_counter表,那里可能有一个较旧的值。

+0

问题解决了(请参阅上面的注释)。 – Skysoft

+0

你太棒了弗朗西斯:-)你是我的项目转折点(y)。 – balamurugan

相关问题