Я пытаюсь создать таблицы с динамическими именами. Код, из которого я получаю ошибки, является частью динамического SQL. Я не уверен, в чем проблема. Я новичок в динамическом SQL и хранимых процедурах.
PREPARE stmt FROM "CREATE TABLE `?` SELECT lat, lon, nfldtime FROM position_reports where mmsi = ? ORDER BY id DESC LIMIT 100";
EXECUTE stmt USING CONCAT("mmis", FORMAT(vesselID,0)), vesselID;
Ошибка, возникающая при попытке создать процедуру:
Строка сценария: 4 В вашем синтаксисе SQL есть ошибка; проверить руководство
что соответствует вашей версии сервера MySQL для правильного синтаксиса
использовать рядом с 'CONCAT ("mmis", FORMAT (vesselID, 0)), vesselID;
Я пробовал это:
EDIT:
от @Konerak, ответьте, теперь это работает:
set @s = CONCAT("CREATE TABLE mmsi", vesselID, " SELECT lat, lon, nfldtime FROM position_reports where mmsi = ", vesselID, " ORDER BY id DESC LIMIT 100");
prepare createTable from @s;
EXECUTE createTable;
DEALLOCATE PREPARE createTable;