можно ли реализовать ?

perl

как perl скриптом под windows обойти папку с подпапками,вычислить md5 найденных файлов и отметить в базе mysql при совпадении по md5 в соответствующем поле ?

Примечание:
запросы к базе такие:
USE database;
OPTIMIZE TABLE `table1`, `table2`;
UPDATE table1 SET Local=NULL;
DROP TABLE IF EXISTS `table3`;
CREATE TABLE table3 (
id int(15) UNSIGNED NOT NULL AUTO_INCREMENT,
md5 char(32) NOT NULL, PRIMARY KEY (id)
) ENGINE MyISAM DEFAULT CHARSET utf8;
ALTER TABLE `table3` ADD UNIQUE (`md5`);
INSERT INTO table3 VALUES (NULL, '00000000000000000000000000000000');
INSERT INTO table3 VALUES (NULL, '12345678901234567890123456789012');
UPDATE table1, local SET table1.Local=0 WHERE table1.MD5=table3.md5;

Примечание:
rojer, table3 возникла в процессе, без неё конечно можно обойтись, тем более что последний UPDATE очень не производительный.
"просто насобирать локальных md5, а потом сделать UPDATE table1 SET Local = 0 WHERE md5 IN (...)" - это наиболее оптимальное решение.

Примечание:
совсем забыл, table1 периодически обновляется и данные в поле Local пропадают.
поэтому целесообразнее скрипт делить на две части, и заполнение Local проводить после каждого обновления...

Примечание:
спасибо большое !!!
Ответы:
я так понимаю, конечная задача - поставить Local=0 записям, md5 которых совпадёт с тем что нашлось?
зачем тогда нужна table3? может просто насобирать локальных md5, а потом сделать UPDATE table1 SET Local = 0 WHERE md5 IN (...)?


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.