<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум PHP-MyAdmin.RU &mdash; Копирование таблиц в одной базе]]></title>
		<link>https://forum.php-myadmin.ru/viewtopic.php?id=902</link>
		<atom:link href="https://forum.php-myadmin.ru/extern.php?action=feed&amp;tid=902&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Копирование таблиц в одной базе».]]></description>
		<lastBuildDate>Tue, 28 Sep 2010 06:44:47 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Копирование таблиц в одной базе]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=13419#p13419</link>
			<description><![CDATA[<p>Протестирую и отпишусь чтоб глупые вопросы не задавать <img src="https://forum.php-myadmin.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /> .</p>]]></description>
			<author><![CDATA[null@example.com (givchik)]]></author>
			<pubDate>Tue, 28 Sep 2010 06:44:47 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=13419#p13419</guid>
		</item>
		<item>
			<title><![CDATA[Re: Копирование таблиц в одной базе]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=13416#p13416</link>
			<description><![CDATA[<p><strong>givchik</strong><br />Совершенно верно: код необходимо вставить в поле выполнения SQL запроса и затем вызвать процедуру через CALL. Добавить префиксы можно так:<br /></p><div class="codebox"><pre><code>CALL copy(&#039;&#039;, &#039;new_prefix&#039;);</code></pre></div><p>Процедура может не создаться и вывести ошибку, так что проверьте.</p>]]></description>
			<author><![CDATA[null@example.com (Hanut)]]></author>
			<pubDate>Tue, 28 Sep 2010 05:59:18 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=13416#p13416</guid>
		</item>
		<item>
			<title><![CDATA[Re: Копирование таблиц в одной базе]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=13406#p13406</link>
			<description><![CDATA[<p>А можно таким образом проставить префиксы.<br />И вопрос по коду:<br />код вставить в поле &quot;Выполнить SQL запрос(ы) на БД&quot;,<br />а потом туда же Вызов процедуры....<br />Или я, в силу ограниченности <img src="https://forum.php-myadmin.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /> чего-то не понял?</p>]]></description>
			<author><![CDATA[null@example.com (givchik)]]></author>
			<pubDate>Mon, 27 Sep 2010 14:15:13 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=13406#p13406</guid>
		</item>
		<item>
			<title><![CDATA[Re: Копирование таблиц в одной базе]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=5800#p5800</link>
			<description><![CDATA[<p>Эту процедуру можно запустить на БД для смены префиксов таблиц.<br />Параметры: old_prefix - старый префикс, new_prefix - новый префикс.<br /></p><div class="codebox"><pre><code>DROP PROCEDURE IF EXISTS `copy`//
CREATE DEFINER=`root`@`localhost` PROCEDURE `copy`(IN old_prefix VARCHAR(20), IN new_prefix VARCHAR(20))
BEGIN
  DECLARE done INT DEFAULT 0;
  DECLARE table_name VARCHAR(40);
  DECLARE new_table_name VARCHAR(40);
  DECLARE table_postfix VARCHAR(40);
  DECLARE cur1 CURSOR FOR SHOW TABLES;
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

  OPEN cur1;

  REPEAT
    FETCH cur1 INTO table_name;
    SET table_postfix = TRIM(LEADING old_prefix FROM table_name);
    SET new_table_name = CONCAT(new_prefix, table_postfix);
    IF NOT done THEN
      IF table_name LIKE CONCAT(old_prefix, &#039;%&#039;) THEN
        SET @S := CONCAT(&#039;CREATE TABLE `&#039;, new_table_name, &#039;` LIKE `&#039;, table_name, &#039;`;&#039; );
        PREPARE stmt FROM @S;
        EXECUTE stmt;
        DEALLOCATE PREPARE stmt;

        SET @S := CONCAT(&#039;INSERT INTO `&#039;, new_table_name, &#039;` SELECT * FROM `&#039;, table_name, &#039;`;&#039;);
        PREPARE stmt FROM @S;
        EXECUTE stmt;
        DEALLOCATE PREPARE stmt;
      END IF;
    END IF;
  UNTIL done END REPEAT;

  CLOSE cur1;

END</code></pre></div><p>Пример вызова процедуры:<br /></p><div class="codebox"><pre><code>CALL copy(&#039;old_prefix&#039;, &#039;new_prefix&#039;);</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Hanut)]]></author>
			<pubDate>Mon, 08 Sep 2008 00:11:40 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=5800#p5800</guid>
		</item>
		<item>
			<title><![CDATA[Копирование таблиц в одной базе]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=5794#p5794</link>
			<description><![CDATA[<p>Имеется база base_db, в ней таблицы pre1_tab1, pre1_tab2, pre1_tab3...pre1_tabn. Как скопировать эти таблицы в эту же базу base_db, только с другим префиксом pre2_tab1, pre2_tab2, pre2_tab3...pre2_tabn ? Каждую по очереди я нашел, как скопировать, но это очень долго... А все сразу скопировать, изменив только префикс, есть возможность?</p>]]></description>
			<author><![CDATA[null@example.com (dispen)]]></author>
			<pubDate>Sun, 07 Sep 2008 15:56:11 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=5794#p5794</guid>
		</item>
	</channel>
</rss>
