Take the 2-minute tour ×
Drupal Answers is a question and answer site for Drupal developers and administrators. It's 100% free, no registration required.

I have designed a view and I see this query in the preview section:

SELECT node.nid AS nid, 
       node_data_field_crm_history_brokerid.field_crm_history_brokerid_value AS node_data_field_crm_history_brokerid_field_crm_history_brokerid_value, 
       node.language AS node_language, 
       node.type AS node_type, 
       node.vid AS node_vid, 
       node_data_field_crm_history_brokerid.field_crm_history_caseid_value AS node_data_field_crm_history_brokerid_field_crm_history_caseid_value, 
       node_data_field_crm_history_brokerid.field_crm_history_dateadded_value AS node_data_field_crm_history_brokerid_field_crm_history_dateadded_value, 
       node_data_field_crm_history_brokerid.field_crm_history_entrydesc_value AS node_data_field_crm_history_brokerid_field_crm_history_entrydesc_value 
FROM node node 
LEFT JOIN content_type_crm_history node_data_field_crm_history_brokerid ON node.vid = node_data_field_crm_history_brokerid.vid 
WHERE node.type in ('crm_history')

What does vid mean here?

Actually I need this because when I try to insert a simple rule to insert a row in the crm_history using this query:

$result = db_query("INSERT INTO {content_type_crm_history} (vid, nid, field_crm_history_caseid_value, field_crm_history_brokerid_value, field_crm_history_dateadded_value, field_crm_history_entrydesc_value) VALUES (" . $node->nid . ", " . $node->vid . ", " . $caseid . ", " . $brokerid . ", " . $dateadded . ", '" . t($entrydesc) . "')");

It does populate the database table but it doesn't show in the view. It shows only the view when I add via the create content page.

share|improve this question

migrated from stackoverflow.com Oct 15 '11 at 6:25

This question came from our site for professional and enthusiast programmers.

3 Answers 3

up vote 16 down vote accepted

Unfortunately, vid can mean multiple things. That's not ideal, but I have not seen it causing problems (other than mild confusion now and then).

In the context of nodes, it means 'version id'. For every node in the node table, Drupal can save multiple versions in the node_revisions table. The version id is the unique identifier in the node_revisions table. (This is the vid you see in your query.)

In the context of taxonomy, vid means 'vocabulary id'. A vocabulary is a collection of related terms. Every vocabulary has a unique id.

In the context of the Views module, vid means 'view id'.

On a different note, you should not be adding nodes to the database with custom queries. The better method is to create a node object and let drupal write it to the database using node_save().

share|improve this answer

From the Drupal node object reference page, node->vid is the revision id of the current version of the node.

Node content isn't stored directly in the node table but in the node_revisions table. There's a good explanation of the table structures on this page.

share|improve this answer

vid is the revision id. In Drupal, every node can have multiple revisions. If you aren't using revisions, then the nid (node ID) will equal the vid.

share|improve this answer
    
But, when not using revisions, don't count on nid always equaling vid! –  Greg Jan 25 '10 at 19:43
    
can any one give examples of query to insert data in to the content so that i can see the contents in the view.. urgent guys –  rakeshakurathi Jan 26 '10 at 15:02
    
@rakeshakurathi - Look at the source code for Node Clone. One of the few things it does is insert new nodes, so it should be easy to locate the relevant code in its source. drupal.org/project/node_clone –  Greg Jan 26 '10 at 15:56

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.