SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 08.10.2018 16:49:18

platedz
Активист
Зарегистрирован: 27.03.2012
Сообщений: 285

Массивы и циклы в Mysql

Подскажите, пожалуйста. Хочу сделать через цикл создание таблиц в базе данных Mysql. Соответственно, таблицы все разные и мне получается надо каждую поместить в массив и перебором добавить. Возможно ли такое и как это реализовать? Чтобы сам код при создании таблицы был один, а массивы я уже отдельно подключал


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#2 08.10.2018 16:52:49

klow
Старожил
Зарегистрирован: 06.12.2014
Сообщений: 355

Re: Массивы и циклы в Mysql

А что мешает использовать таблицу в которой хранить (ведь их нужно где-то хранить?)  имена таблиц?

Неактивен

 

#3 08.10.2018 17:04:23

platedz
Активист
Зарегистрирован: 27.03.2012
Сообщений: 285

Re: Массивы и циклы в Mysql

Вы наверное не поняли, я хочу через цикл перебрать массив таблиц и заносимых параметров скажем
$arraytable[0] = "table1";
$arraytable[1] = "table2";

$arraytext[0] = "text1";
$arraytext[1] = "text2";

function functionInsert($table; $text){DROP TABLE $table; create table $table $text ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;}

for($i =0; $i<count($array); $i++)
{
    functionInsert($arraytable[$i], $arraytext[1])
}

Грубо сделал в виде php примера особо не заморачиваясь с синтаксисом, так как на php мне все равно не надо, исключительно для понимания задачи.  По другому сделать ничего не мешает, но хочется именно так, для изучения циклов и функций.


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#4 08.10.2018 22:32:01

platedz
Активист
Зарегистрирован: 27.03.2012
Сообщений: 285

Re: Массивы и циклы в Mysql

Может не обязательно так, как я написал, но хотелось бы в любом случае использовать циклы для создания таблиц


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#5 08.10.2018 23:57:16

platedz
Активист
Зарегистрирован: 27.03.2012
Сообщений: 285

Re: Массивы и циклы в Mysql

Поправьте меня, я так понимаю, что мне нужно сделать цикл в хранимой процедуре и уже в нее передать нужные мне данные


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#6 09.10.2018 00:24:10

platedz
Активист
Зарегистрирован: 27.03.2012
Сообщений: 285

Re: Массивы и циклы в Mysql

Для начала делаю так

DELIMITER //  
CREATE PROCEDURE `p2` (IN ttable TEXT, IN ttext TEXT)  
BEGIN  
    SELECT ttext from ttable ;  
END//  
CALL  p2("`table`", "`id`");


А в ответ получаю
Table 'base.ttable' doesn't exist */

Те. вместо значения подставляется почему-то имя переменной


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#7 09.10.2018 08:42:58

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

Re: Массивы и циклы в Mysql

Чтобы подставить переменную в качестве имени таблицы, используйте PREPARE

Неактивен

 

#8 09.10.2018 11:09:40

platedz
Активист
Зарегистрирован: 27.03.2012
Сообщений: 285

Re: Массивы и циклы в Mysql

Спасибо, вышло, а как бы мне теперь в цикле все это дела перебрать, подставляя названия таблиц и выбираемые поля


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#9 09.10.2018 11:37:26

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

Re: Массивы и циклы в Mysql

Используйте LOOP
https://dev.mysql.com/doc/refman/5.7/en/loop.html

Есть несколько вариантов. Например, создать временную таблицу с именами таблиц, а в цикле выбирать по одной и удалять обработанную из временной таблицы.

Неактивен

 

#10 09.10.2018 12:01:25

platedz
Активист
Зарегистрирован: 27.03.2012
Сообщений: 285

Re: Массивы и циклы в Mysql

Спасибо, правда я пока остановился на while и разделителях.


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

Board footer

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