我正在使用drupal,它的节点表上有两个名为nid
和vid
的字段。我看到的每条记录似乎都具有nid
和vid
的相同值。
我正在乱砍并以非drupal的方式插入节点,我想确保vid
设置为nid
的任何值。
为了便于解释,这里有一些我希望的东西:
INSERT INTO node (vid, type, blah, blah) VALUES (value_of(nid), "webpage", "blah", "blah");
value_of
当然不存在,但希望你能理解我正在寻找的东西。
答案 0 :(得分:1)
你缺少一些重要的理解。
一个节点可以有多个修订版。这使得可以保存同一节点的旧版本。如果您从未对节点进行过新的修订,那么nid和vid将是相同的,但是对于每个新修订版本,vid将在nid保持不变的情况下增加。
所以简而言之,nid和vid不应该相等,但在某些情况下它们是相同的。您应该使用{node_revisions}来获取插入{node}表的vid。
答案 1 :(得分:0)
您可以使用nodefactory模块创建新节点。它不会制动drupal db结构并创建填充了所有必填字段的节点。然后你甚至可以使用cck字段。这是从代码中创建节点的正确方法。