Re-add old blog posts from Astro
This commit is contained in:
parent
076239fa25
commit
051e154c65
178 changed files with 13479 additions and 7 deletions
source/_posts
79
source/_posts/add-taxonomy-term-multiple-nodes-using-sql.md
Normal file
79
source/_posts/add-taxonomy-term-multiple-nodes-using-sql.md
Normal file
|
@ -0,0 +1,79 @@
|
|||
---
|
||||
title: Add a Taxonomy Term to Multiple Nodes Using SQL
|
||||
date: 2010-07-07
|
||||
excerpt: How to add a new taxonomy term to multiple nodes in Drupal using SQL.
|
||||
tags:
|
||||
- database
|
||||
- drupal-6
|
||||
- drupal-planet
|
||||
- sequal-pro
|
||||
- sql
|
||||
- taxonomy
|
||||
---
|
||||
|
||||
In preparation for my Blog posts being added to
|
||||
[Drupal Planet](http://drupal.org/planet), I needed to create a new Taxonomy
|
||||
term (or, in this case, tag) called 'Drupal Planet', and assign it to new
|
||||
content to imported into their aggregator. After taking a quick look though my
|
||||
previous posts, I decided that 14 of my previous posts were relevant, and
|
||||
thought that it would be useful to also assign these the 'Drupal Planet' tag.
|
||||
|
||||
I didn't want to manually open each post and add the new tag, so I decided to
|
||||
make the changes myself directly into the database using SQL, and as a follow-up
|
||||
to a previous post -
|
||||
[Quickly Change the Content Type of Multiple Nodes using SQL](/blog/change-content-type-multiple-nodes-using-sql/).
|
||||
|
||||
**Again, before changing any values within the database, ensure that you have an
|
||||
up-to-date backup which you can restore if you encounter a problem!**
|
||||
|
||||
The first thing I did was create the 'Drupal Planet' term in my Tags vocabulary.
|
||||
I decided to do this via the administration area of my site, and not via the
|
||||
database. Then, using [Sequel Pro](http://www.sequelpro.com), I ran the
|
||||
following SQL query to give me a list of Blog posts on my site - showing just
|
||||
their titles and nid values.
|
||||
|
||||
```sql
|
||||
SELECT title, nid FROM node WHERE TYPE = 'blog' ORDER BY title ASC;
|
||||
```
|
||||
|
||||
I made a note of the nid's of the returned nodes, and kept them for later. I
|
||||
then ran a similar query against the term_data table. This returned a list of
|
||||
Taxonomy terms - showing the term's name, and it's unique tid value.
|
||||
|
||||
```sql
|
||||
SELECT NAME, tid FROM term_data ORDER BY NAME ASC;
|
||||
```
|
||||
|
||||
The term that I was interested in, Drupal Planet, had the tid of 84. To confirm
|
||||
that no nodes were already assigned a taxonomy term with this tid, I ran another
|
||||
query against the database. I'm using aliases within this query to link the
|
||||
node, term_node and term_data tables. For more information on SQL aliases, take
|
||||
a look at <http://w3schools.com/sql/sql_alias.asp>.
|
||||
|
||||
```sql
|
||||
SELECT * FROM node n, term_data td, term_node tn WHERE td.tid = 84 AND n.nid = tn.nid AND tn.tid = td.tid;
|
||||
```
|
||||
|
||||
As expected, it returned no rows.
|
||||
|
||||
The table that links node and term_data is called term_node, and is made up of
|
||||
the nid and vid columns from the node table, as well as the tid column from the
|
||||
term_data table. Is it is here that the additional rows would need to be
|
||||
entered.
|
||||
|
||||
To confirm everything, I ran a simple query against an old post. I know that the
|
||||
only taxonomy term associated with this post is 'Personal', which has a tid
|
||||
value of 44.
|
||||
|
||||
```sql
|
||||
SELECT nid, tid FROM term_node WHERE nid = 216;
|
||||
```
|
||||
|
||||
Once the query had confirmed the correct tid value, I began to write the SQL
|
||||
Insert statement that would be needed to add the new term to the required nodes.
|
||||
The nid and vid values were the same on each node, and the value of my taxonomy
|
||||
term would need to be 84.
|
||||
|
||||
Once this had completed with no errors, I returned to the administration area of
|
||||
my Drupal site to confirm whether or not the nodes had been assigned the new
|
||||
term.
|
Loading…
Add table
Add a link
Reference in a new issue