При создании одной таблицы она ссылается на внешние значения из другой таблицы, то есть реализована связь многие ко многим на примере пользователей и отзывов:
spoilerCREATE TABLE IF NOT EXISTS `task_force`.`users` (
    `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
    `reviews` INT UNSIGNED NOT NULL,
    FOREIGN KEY (`reviews`) REFERENCES `reviews` (`id`),
    PRIMARY KEY (`id`)
);
CREATE TABLE IF NOT EXISTS `task_force`.`reviews` (
    `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
    `user_id` INT UNSIGNED NOT NULL,
    FOREIGN KEY (`user_id`) REFERENCES `users` (`id`),
    PRIMARY KEY (`id`)
);
 
Таблица первая не создаётся, так как она не может взять значение из таблицы, которой ещё нет, ведь она расположена ниже:
Как можно описать схему без этих ошибок? Создать сначала таблицы, а потом прописать связи, как отдельный запрос? И есть ли вариант компактного решения в один файл без миграций?