SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 18.02.2008 00:05:42

Fine
Участник
Зарегистрирован: 17.02.2008
Сообщений: 6

Вопрос

Есть база MySQL. В ней есть таблица "primer" - в этой таблице было утеряно несколько записей, которые находились самыми первыми (записи сортируются по столбцу ID). Так вот, записи были с 1-3000, теперь же стали с 200-3000, т.е. строки с 1-199 удалены. Есть резервные сохраненные файлы - primer.MYI и primer.MYD, в которых есть данные об этих строках. Как можно восстановить данные из этих файлов в текущую таблицу? Желательно путем запроса в базу... Спасибо!

Неактивен

 

#2 18.02.2008 01:05:51

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Вопрос

переименовать старые primer.MYI primer.MYD в oldprimer.MYI и oldprimer.MYD
Далее INSERT INTO primer SELECT * from oldprimer WHERE ID<=199;

Неактивен

 

#3 18.02.2008 16:18:41

Fine
Участник
Зарегистрирован: 17.02.2008
Сообщений: 6

Re: Вопрос

[DB] ERROR 1146: Table 'db.old_primer' doesn't exist

Что делать?

Неактивен

 

#4 18.02.2008 16:21:24

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Вопрос

таблица будет называться oldprimer без подчеркивания, если Вы так назовете Файл. Не забудьте сменить владельца файла на mysql

Неактивен

 

#5 18.02.2008 16:30:54

Fine
Участник
Зарегистрирован: 17.02.2008
Сообщений: 6

Re: Вопрос

Прошу прощения, но файл я назвал именем с подчеркиванием и запрос соответственно выполняю с использованием имени с подчеркиванием. Но как сменить владельца файла? Спасибо.

Неактивен

 

#6 18.02.2008 16:32:02

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Вопрос

chown mysql old_primer.*

Неактивен

 

#7 18.02.2008 16:36:32

Fine
Участник
Зарегистрирован: 17.02.2008
Сообщений: 6

Re: Вопрос

Что с этим нужно сделать? sad

Неактивен

 

#8 18.02.2008 16:43:11

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Вопрос

в консоли набрать

если Вы используете ftp, то у него должно быть в менюшке смена владельца, если нет, то должна быть смена прав - сделайте доступ для всех на чтение и запись

Обратите внимание на большие и малые буквы в имени файла

Неактивен

 

#9 18.02.2008 17:26:40

Fine
Участник
Зарегистрирован: 17.02.2008
Сообщений: 6

Re: Вопрос

Спасибо. Получилось. И еще вопрос. Как сделать выборку вставки таких значений (из резервной таблицы), которых нет в существующей? Опять же по ID. К примеру, в существующей таблице нет значений ID с 209-287, с 289-301 и т.д. Чтобы все это выполнить одним запросом... Спасибо!

Неактивен

 

#10 18.02.2008 17:31:03

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Вопрос

WHERE (ID>=209 AND ID<=287) OR (ID>=289 AND ID<=301)

Можно так WHERE ID NOT IN (SELECT ID from исходная_таблица)

Неактивен

 

#11 18.02.2008 17:39:20

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Вопрос

INSERT INTO primer SELECT o.* from oldprimer o LEFT JOIN primer p ON o.id=p.id WHERE p.id IS NULL;

Неактивен

 

#12 18.02.2008 17:57:57

Fine
Участник
Зарегистрирован: 17.02.2008
Сообщений: 6

Re: Вопрос

Большое вам спасибо! Можно закрывать.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson