На одном хостинге, при создании таблиц в базе данных, по умолчанию создаются таблицы myisam. И дело в том, что это нигде нельзя выбрать, чтобы по умолчанию создавались innodb.
Подскажите, как создавать таблицы innodb? т.е. допустим я устанавливаю wordpress и мне нужно, чтобы создавались таблицы innodb, а по умолчанию создаются myisam.
Можно ли как-то после установки wordpress, переопределить таблицы из myisam в innodb ?
Сейчас есть возможность проверить только на локальном сервере, на котором только innodb.
Взял код из приведённой ниже ссылки, и пытался конвертировать из innodb в myisam, но код почему-то не работает. Подскажите, что не так?
SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=MyISAM;')
FROM INFORMATION_SCHEMA.TABLES
WHERE ENGINE='MyISAM'
AND table_schema = 'mydatabase';
второй код:
SET @DATABASE_NAME = 'name_of_your_db';
SELECT CONCAT('ALTER TABLE `', table_name, '` ENGINE=MyISAM;') AS sql_statements
FROM information_schema.tables AS tb
WHERE table_schema = @DATABASE_NAME
AND `ENGINE` = 'MyISAM'
AND `TABLE_TYPE` = 'BASE TABLE'
ORDER BY table_name DESC;
естественно название бд ставил правильное:
в 1м коде table_schema = 'mydatabase';
во 2м SET @DATABASE_NAME = 'name_of_your_db';
в этом участке кода ставил свою бд
SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=MyISAM;')
FROM INFORMATION_SCHEMA.TABLES
WHERE ENGINE='MyISAM'
AND table_schema = 'mydatabase';
этот код выполнит множественный вызов команд alter, наподобии такого:
ALTER TABLE wp_commentmeta ENGINE=MyISAM;
ALTER TABLE wp_comments ENGINE=MyISAM;
ALTER TABLE wp_links ENGINE=MyISAM;
ALTER TABLE wp_options ENGINE=MyISAM;
ALTER TABLE wp_postmeta ENGINE=MyISAM;
ALTER TABLE wp_posts ENGINE=MyISAM;
ALTER TABLE wp_term_relationships ENGINE=MyISAM;
ALTER TABLE wp_term_taxonomy ENGINE=MyISAM;
ALTER TABLE wp_termmeta ENGINE=MyISAM;
ALTER TABLE wp_terms ENGINE=MyISAM;
ALTER TABLE wp_usermeta ENGINE=MyISAM;
ALTER TABLE wp_users ENGINE=MyISAM;
E_p, можете пояснить, что там ещё нужно запустить?
Создать новую базу с двихком "MyISAM" можно так: https://dev.mysql.com/doc/refman/5.5/en/create-table.html
CREATE TABLE new_table
(id INT, INDEX USING BTREE (id))
ENGINE = MyISAM;
Поменять старую: https://dev.mysql.com/doc/refman/5.7/en/converting-tables-to-innodb.html
ALTER TABLE old_table ENGINE=MyISAM;
PS:
В вашем коде вариант
innodb
и создаете строку которая меняет их на MyISAM
. innodb
таблицы и создаете запрос который меняет их на innodb
.Ну и запрос(строку) который вам вернёт надо запустить!
Дополнил ваш вариант( https://dev.mysql.com/doc/refman/5.7/en/sql-syntax-prepared-statements.html )
Меняем все innodb
на MyISAM
SET @queryString = (
SELECT CONCAT("ALTER TABLE ",TABLE_NAME," ENGINE=MyISAM;")
FROM INFORMATION_SCHEMA.TABLES
WHERE ENGINE= "MyISAM"
AND table_schema = "mydatabase";
);
PREPARE q FROM @queryString;
EXECUTE q;
DEALLOCATE PREPARE q;
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В карточке товара Woocommerce на вкладке "Дополнительно" есть возможность включить отзывы, отметив соответствующий чекбокс
Привет, не могу придумать как сделать растяжение текста на всю ширину экрана в TextView, в конце строки всегда остаются большие пробелыНадо сделать...
Приложение падает когда пытаюсь программно установить цвет фона кнопкиКнопку инициализировал в Java, всё связал
В общем есть у меня простая рисовалкаМожно рисовать простые фигуры на canvas, и сохранять полученный результат в галерею в папку Pictures