1

Тема: Как задать SQL запрос

Вобщим в базе есть таблицы с определенным префиксом которые надо скопировать в такие же таблицы но с другим префиксом, какой sql запрос нужно сделать ?

т.е. у одних таблиц просто table_ , а мне нужно их перенести в table_2_

2

Re: Как задать SQL запрос

Для каждой таблицы необходимо выполнить два запроса: один на создание структуры, второй на вставку данных.

CREATE TABLE `table_2` LIKE `table`;
INSERT INTO `table_2` SELECT * FROM `table`;

3

Re: Как задать SQL запрос

Странно, неужели нету возможности отбора по маске ?

4

Re: Как задать SQL запрос

alo
Не знаю такого SQL запроса.

5 (изменено: alo, 2010-04-15 09:27:13)

Re: Как задать SQL запрос

Понятно, а как сохранить все таблицы базы и перенести их в другую базу на другом хосте ?

6

Re: Как задать SQL запрос

alo
В phpMyAdmin выбираем БД в левом фрейме, переходим на страницу экспорта и создаем дамп. На втором сервере создаем БД, переходим на страницу импорта и импортируем дамп.

Либо с помощью консоли (password - это пароль root, должен быть вплотную к ключу -p).
[mono]mysqldump -uroot -ppassword db_name > backup-file.sql[/mono]
На втором сервере импортируем:
[mono]mysql -uroot -ppassword db_name < backup-file.sql[/mono]

7

Re: Как задать SQL запрос

Спасибо Hanut.

8

Re: Как задать SQL запрос

Hanut сказал:

Для каждой таблицы необходимо выполнить два запроса: один на создание структуры, второй на вставку данных.

CREATE TABLE `table_2` LIKE `table`;
INSERT INTO `table_2` SELECT * FROM `table`;

Вот что мне выдало:

#1136 - Column count doesn't match value count at row 1
INSERT INTO `table_2`
SELECT *
FROM `table` ;

9

Re: Как задать SQL запрос

alo
Поля таблиц table_2 и table должны быть полностью идентичны.

10

Re: Как задать SQL запрос

А можно как-то в сделанном дампе базы прописать префиксы таблицам?

Ответ есть всегда, главное вопрос правильно поставить!)

11

Re: Как задать SQL запрос

givchik
Можно. Достаточно открыть дамп и во всех запросах на создание таблицы (CREATE TABLE...) добавить к имени таблицы префикс, после чего импортировать дамп назад.

12

Re: Как задать SQL запрос

Даже если там не было префиксов?
Он ссылаясь на запрос внесет данные в таблицу с добавленным префиксом?
Кажется способ, интересней, там одно действие, ну или два smile .

Ответ есть всегда, главное вопрос правильно поставить!)

13

Re: Как задать SQL запрос

givchik
В дампе будут строки вроде этой:
CREATE TABLE IF NOT EXISTS `tbl_name` (
INSERT INTO `tbl_name`
Изменяем имя создаваемой таблицы tbl_name на new_tbl_name, после чего импортируем дамп обратно.

CREATE TABLE IF NOT EXISTS `new_tbl_name` (
INSERT INTO `new_tbl_name`

14

Re: Как задать SQL запрос

Спасибо, очень терпеливо и внятно smile .

Ответ есть всегда, главное вопрос правильно поставить!)