Для MySQL вы можете использовать multi-query для выполнения нескольких операторов SQL за один вызов. Вы должны выполнить два CREATE TABLE
оператора, разделенных точкой с запятой.
Но каждый оператор CREATE TABLE
в отдельности может создать только одну таблицу. Синтаксис, поддерживаемый MySQL, не позволяет создавать несколько таблиц одновременно.
@ bsdfish предлагает использовать транзакции, но операторы DDL, такие как CREATE TABLE
, вызывают неявные фиксации транзакций. В MySQL невозможно выполнить несколько операторов CREATE TABLE
за одну транзакцию.
Мне также любопытно, почему вам нужно создавать две таблицы одновременно. Единственная идея, которую я мог бы придумать, - это если две таблицы имеют циклические зависимости, то есть они ссылаются друг на друга с помощью внешних ключей. Решением этой проблемы является создание первой таблицы без этого внешнего ключа, затем создание второй таблицы, а затем добавление внешнего ключа в первую таблицу с помощью ALTER TABLE ADD CONSTRAINT
. Для удаления любой таблицы требуется аналогичный процесс в обратном порядке.