За последние 24 часа нас посетили 17959 программистов и 1700 роботов. Сейчас ищут 1714 программистов ...

Как сделать дубль структуры таблицы в другую базу через PDO ?

Тема в разделе "PHP и базы данных", создана пользователем processsor, 20 авг 2023.

  1. processsor

    processsor Новичок

    С нами с:
    29 янв 2022
    Сообщения:
    21
    Симпатии:
    0
    Как программно сделать дубль структуры таблицы в другую базу через PDO в php 8 ?

    Нашел только методы 10 летней давности где функции все уже depricated.

    По возможности еще хотелосьбы получиться sql код для создания таблицы, которую дублируешь.
    В DB программах всегда есть такой простой код для создания таблицы например.
    Но хочется всё это сделать программно.
     
  2. Boothooz

    Boothooz Активный пользователь

    С нами с:
    8 май 2016
    Сообщения:
    63
    Симпатии:
    6
    CREATE TABLE `new_table`
    SELECT *
    FROM `from_table`
    WHERE {FALSE - только структуру | TRUE - с данными}
     
  3. processsor

    processsor Новичок

    С нами с:
    29 янв 2022
    Сообщения:
    21
    Симпатии:
    0
    Капитан очевидность.

    Написано же - в другую базу, а не в туже.
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Программно... Надо два соединения с базами — одновременно или последовательно. В соединении с исходной базой выполняешь SHOW TABLES чтобы получить список таблиц и SHOW CRATE TABLE tablename чтобы получить описание. По этому описанию создаешь таблицы в соединении с базой-получателем.
    --- Добавлено ---
    В простейшем случае, на одном и том же сервере БД, если пользователь имеет права на обе схемы, ты мог бы копировать структуру и данные в одном соендинении просто упоминая имя базы как префикс к имени таблицы.
    db1.tablename, db2.tablename
     
  5. processsor

    processsor Новичок

    С нами с:
    29 янв 2022
    Сообщения:
    21
    Симпатии:
    0
    Спасибище