Перейти к контенту

Как сделать копию всех таблиц базы данных с новым префиксом?


Рекомендуемые сообщения

Есть допустим 100 таблиц с префиксом ibf_

Мне нужно сделать их копию там же (в MySQL и без экспорта), чтобы был префикс, ibf2_

 

Без экспорта! Чтобы MySQL сам поработал :D

Ссылка на комментарий
Поделиться на других сайтах

CREATE TABLE ibf2_* (если таблица уже есть, то TRUNCATE ibf2_*)

 

INSERT INTO ibf2_* SELECT * FROM ibf_*

Изменено пользователем профф
Ссылка на комментарий
Поделиться на других сайтах

INSERT INTO ibf2_* SELECT * FROM ibf_*

 

Что означает звёздочка между SELECT и FROM?

 

И если можно, то напиши весь запрос на примере таблицы ibf_posts

Изменено пользователем Taylor Reeze
Ссылка на комментарий
Поделиться на других сайтах

Означает что ты должен сам подставить все свои таблицы и получить n запросов.
Ссылка на комментарий
Поделиться на других сайтах

Простейший PHP-скрипт для работы с таблицами:

<?php
$user	 = 'user';
$host	 = 'localhost';
$password = 'password';
$db	   = 'database';
$link	 = mysql_connect( $host, $user, $password ) or
	die( 'Could not connect: ' . mysql_error() );

mysql_select_db( $db ) or
	die( 'Could not select database' );

$query  = 'show tables';
$result = mysql_query( $query ) or
	die( 'Query failed: ' . mysql_error() );

$i	  = 0;
$return = array();

for ( $i = 0; $i < mysql_num_rows( $result ); $i++ ) {
	$return[$i] = mysql_fetch_array( $result );
}

foreach( $return as $key=>$value ) {
	$query  = 'repair table ' . $value[0];  //Your query should be here

	echo( $query . '... ' );

	$result = mysql_query( $query ) or
		die( 'Query failed: ' . mysql_error() );

	echo( '[OK] <br>' );
}


mysql_free_result( $result );
mysql_close();
?>

Ссылка на комментарий
Поделиться на других сайтах

Он получает имена таблиц из заданной БД и выполняет запрос, который мы задаем в этой строчке:

$query = 'repair table ' . $value[0];  //Your query should be here

Просто позволяет автоматизировать процесс.

Ссылка на комментарий
Поделиться на других сайтах

phpmyadmin:

CREATE TABLE `ipb`.`ibf_posts1` (
`pid` int( 10 ) NOT NULL AUTO_INCREMENT ,
`append_edit` tinyint( 1 ) default '0',
`edit_time` int( 10 ) default NULL ,
`author_id` mediumint( 8 ) NOT NULL default '0',
`author_name` varchar( 32 ) default NULL ,
`use_sig` tinyint( 1 ) NOT NULL default '0',
`use_emo` tinyint( 1 ) NOT NULL default '0',
`ip_address` varchar( 16 ) NOT NULL default '',
`post_date` int( 10 ) default NULL ,
`icon_id` smallint( 3 ) default NULL ,
`post` text,
`queued` tinyint( 1 ) NOT NULL default '0',
`topic_id` int( 10 ) NOT NULL default '0',
`post_title` varchar( 255 ) default NULL ,
`new_topic` tinyint( 1 ) default '0',
`edit_name` varchar( 255 ) default NULL ,
`post_key` varchar( 32 ) NOT NULL default '0',
`post_parent` int( 10 ) NOT NULL default '0',
`post_htmlstate` smallint( 1 ) NOT NULL default '0',
PRIMARY KEY ( `pid` ) ,
KEY `topic_id` ( `topic_id` , `queued` , `pid` ) ,
KEY `author_id` ( `author_id` , `topic_id` ) ,
KEY `post_date` ( `post_date` ) ,
FULLTEXT KEY `post` ( `post` ) 
) ENGINE = MYISAM DEFAULT CHARSET = cp1251;

INSERT INTO `ipb`.`ibf_posts1` 
SELECT * 
FROM `ipb`.`ibf_posts`;

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.