代码之家  ›  专栏  ›  技术社区  ›  Blaine Lafreniere

如何将MySQL字段设置为另一个字段的动态生成值?

  •  0
  • Blaine Lafreniere  · 技术社区  · 14 年前

    我在和drupal混在一起,它有两个字段叫做 nid vid 在它的节点表上。我看的每一张唱片似乎都有相同的价值 奈德 视频

    我正在以非drupal的方式四处搜索并插入节点,我想确保 视频 设置为任何值 有。

    为了便于解释,我希望有件事:

    INSERT INTO node (vid, type, blah, blah) VALUES (value_of(nid), "webpage", "blah", "blah");
    

    value_of 当然不存在,但希望你知道我在找什么。

    2 回复  |  直到 14 年前
        1
  •  1
  •   googletorp    14 年前

    你错过了一些重要的理解。

    • {node_revisions}保存有关节点的body字段的信息。这里vid是pk和serial,同时它还有一个nid,它是对{node}表的引用。

    一个节点可以有多个修订。这使得保存同一节点的旧版本成为可能。如果您从未对某个节点进行过新的修订,则nid和vid将相同,但是对于所做的每个新修订,vid将增加,而nid保持不变。

    所以简而言之,nid和vid不应该相等,但在某些情况下它们是相等的。您应该使用{node}修订版获取插入{node}表的vid。

        2
  •  0
  •   Denis Shishkov    14 年前

    nodefactory 创建新节点的模块。它不会破坏drupal的db结构,并创建所有必需字段都已填充的节点。然后你甚至可以使用cck字段。这是从代码创建节点的正确方法。