Знатокам MYSQL: две базы данных с одинаковыми таблицами, но с немного разными данными

M
На сайте с 20.08.2004
Offline
376
784

Знатокам MYSQL: две базы данных с одинаковыми таблицами, но с немного разными данными - в оринигал записать данные из бекапа.

к примеру

есть БД

a1

a2

в каждой из них есть таблица

основная таблица продакшин сервера

но в ней надо заменить данные у которых в поле /// на данные с резервной таблицы


CREATE TABLE `t1` (
`Id` int(11) NOT NULL auto_increment,
`text` varchar(255) default NULL,
PRIMARY KEY (`Id`)
) ENGINE=MyISAM AUTO_INCREMENT=35 DEFAULT CHARSET=utf8;


INSERT INTO `t1` VALUES (1,'aaa1');
INSERT INTO `t1` VALUES (2,'aaa2');
INSERT INTO `t1` VALUES (3,'aaa3');
INSERT INTO `t1` VALUES (4,'aaa4');
INSERT INTO `t1` VALUES (5,'///');
INSERT INTO `t1` VALUES (6,'aaa6');
INSERT INTO `t1` VALUES (7,'aaa7');
INSERT INTO `t1` VALUES (8,'aaa8');
INSERT INTO `t1` VALUES (9,'aaa9');
INSERT INTO `t1` VALUES (10,'///');
INSERT INTO `t1` VALUES (11,'aaa11');
INSERT INTO `t1` VALUES (12,'aaa12');
INSERT INTO `t1` VALUES (13,'aaa13');
INSERT INTO `t1` VALUES (14,'aaa14');
INSERT INTO `t1` VALUES (15,'///');
INSERT INTO `t1` VALUES (16,'aaa16');
INSERT INTO `t1` VALUES (17,'aaa17');
INSERT INTO `t1` VALUES (18,'aaa18');
INSERT INTO `t1` VALUES (19,'aaa19');
INSERT INTO `t1` VALUES (20,'///');
INSERT INTO `t1` VALUES (21,'aaa21');
INSERT INTO `t1` VALUES (22,'aaa22');
INSERT INTO `t1` VALUES (23,'aaa23');
INSERT INTO `t1` VALUES (24,'aaa24');
INSERT INTO `t1` VALUES (25,'///');
INSERT INTO `t1` VALUES (26,'aaa26');
INSERT INTO `t1` VALUES (27,'aaa27');
INSERT INTO `t1` VALUES (28,'aaa28');
INSERT INTO `t1` VALUES (29,'aaa29');
INSERT INTO `t1` VALUES (30,'///');
INSERT INTO `t1` VALUES (31,'aaa31');
INSERT INTO `t1` VALUES (32,'aaa32');
INSERT INTO `t1` VALUES (33,'aaa33');
INSERT INTO `t1` VALUES (34,'aaa34');

резервная таблица

CREATE TABLE `t1` (
`Id` int(11) NOT NULL auto_increment,
`text` varchar(255) default NULL,
PRIMARY KEY (`Id`)
) ENGINE=MyISAM AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

INSERT INTO `t1` VALUES (1,'aaa1');
INSERT INTO `t1` VALUES (2,'aaa2');
INSERT INTO `t1` VALUES (3,'aaa3');
INSERT INTO `t1` VALUES (4,'aaa4');
INSERT INTO `t1` VALUES (5,'aaa5');
INSERT INTO `t1` VALUES (6,'aaa6');
INSERT INTO `t1` VALUES (7,'aaa7');
INSERT INTO `t1` VALUES (8,'aaa8');
INSERT INTO `t1` VALUES (9,'aaa9');
INSERT INTO `t1` VALUES (10,'aaa10');
INSERT INTO `t1` VALUES (11,'aaa11');
INSERT INTO `t1` VALUES (12,'aaa12');
INSERT INTO `t1` VALUES (13,'aaa13');
INSERT INTO `t1` VALUES (14,'aaa14');
INSERT INTO `t1` VALUES (15,'aaa15');
INSERT INTO `t1` VALUES (16,'aaa16');
INSERT INTO `t1` VALUES (17,'aaa17');
INSERT INTO `t1` VALUES (18,'aaa18');
INSERT INTO `t1` VALUES (19,'aaa19');
INSERT INTO `t1` VALUES (20,'aaa20');
INSERT INTO `t1` VALUES (21,'aaa21');
INSERT INTO `t1` VALUES (22,'aaa22');
INSERT INTO `t1` VALUES (23,'aaa23');
INSERT INTO `t1` VALUES (24,'aaa24');
INSERT INTO `t1` VALUES (25,'aaa25');

если бы данные просто исчезли я бы сделал вот так

insert into a1.t1
SELECT *
FROM a2.t1
WHERE id
IN (

SELECT id
FROM a1.t1
WHERE `text` = "///"
)

Но мне нужен такой же аналог только для обновления поля text

Пожалуйста, помогите знатоки.

Спасибо.

отец сыночка, лапочки дочки и еще одного сыночка
Dreammaker
На сайте с 20.04.2006
Offline
569
#1

попробуйте replace вместо insert поставить, только сначала бекап сделайте, на случай если я неправильно понял задачу :)

M
На сайте с 20.08.2004
Offline
376
#2

спасибо.

сработало.

а я о нем (реплейс) как то и не подумал

Miracle добавил 25.02.2011 в 22:53

помогают одни и те же люди, а я кроме как спасибо другой благодарностью и отблагодарить не могу (о репке, которую дед с бабой тянули и вытянуть не могли)

Dreammaker
На сайте с 20.04.2006
Offline
569
#3

Miracle, главное чтобы помогло, а по благодарности, то мне в другом люди помогают, так что это просто "передай добро по кругу" :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий