Drupal 7 - пример массовой смены значений полей в БД

Приведу SQL-пример обновления значения поля атрибута alt изображения (ImageField) в базе данных системы, на основе значения Title ноды в массовом порядке:

UPDATE `префикс_field_data_ИмяПоля`,`префикс_node`
SET 
`префикс_field_data_ИмяПоля`.`ИмяПоля_alt`= `префикс_node`.`title`
WHERE 
`префикс_field_data_ИмяПоля`.`entity_id` = `префикс_node`.`nid`/>

Вот как это будет выглядит в действии:

UPDATE 
`d7_field_data_field_img_1600x1200`,`d7_node`
SET 
`d7_field_data_field_img_1600x1200`.`field_img_1600x1200_alt`= `d7_node`.`title`
WHERE 
`d7_field_data_field_img_1600x1200`.`entity_id` = `d7_node`.`nid`

Здесь:

  • field_img_1600x1200 - имя моего CCK-поля;
  • d7 - префикс таблиц Drupal 7, заданный при установке CMS.

Используемые таблицы:

  • d7_field_data_field_img_1600x1200 - содержит некоторые значения поля field_img_1600x1200;
  • d7_node - отсюда я беру заголовки нод.

Важное замечание. Дабы избежать возможных проблем перед выполением всех описанных манипуляций создайте полные резервные копии как базы данных, так и файлов "движка".





© 2012-2014 Druweb.ru. Вы можете спокойно копировать любые материалы сайта только при наличии обратной ссылки.