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 – звідси я беру заголовки нсд.
Важливе зауваження. Щоб уникнути можливих проблем перед выполением всіх описаних маніпуляцій створіть повні резервні копії як бази даних, так і файлів “движка”.