¿Cómo puedo generar un script de creación de tabla para una tabla existente en phpmyadmin?
¿Cómo puedo generar un script de creación de tabla para una tabla existente en phpmyadmin?
Respuestas:
Use la siguiente consulta en la pestaña sql:
SHOW CREATE TABLE tablename
Para ver la consulta completa Existe este hipervínculo llamado + Opciones arriba, seleccione Textos completos
Ejecutar SHOW CREATE TABLE <table name>
consulta
;
se requiere al final.
Paso 1, crea una tabla, inserta algunas filas:
create table penguins (id int primary key, myval varchar(50))
insert into penguins values(2, 'werrhhrrhrh')
insert into penguins values(25, 'weeehehehehe')
select * from penguins
Paso 2, usa el comando de volcado mysql:
mysqldump --no-data --skip-comments --host=your_database_hostname_or_ip.com -u your_username --password=your_password your_database_name penguins > penguins.sql
Paso 3, observe la salida en penguins.sql:
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `penguins`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `penguins` (
`id` int(11) NOT NULL,
`myval` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
La salida está abarrotada por una serie de tokens de condición de ejecución arriba y abajo. Puede filtrarlos si no los quiere en el siguiente paso.
Paso 4 (Opcional), filtre los tokens adicionales de condición de ejecución de esta manera:
mysqldump --no-data --skip-comments --compact --host=your_database_hostname_or_ip.com -u your_username --password=your_password your_database_name penguins > penguins.sql
Que produce la salida final:
eric@dev /home/el $ cat penguins.sql
DROP TABLE IF EXISTS `penguins`;
CREATE TABLE `penguins` (
`id` int(11) NOT NULL,
`myval` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Ejecutar consulta es pestaña sql
MOSTRAR CREAR TABLA tableName
Haga clic en
+ Opciones -> Elegir textos completos -> Haga clic en Ir
Copie la consulta Crear tabla y péguela donde desee crear una nueva tabla.
select * from information_schema.columns
where table_name = 'your_table' and table_schema = 'your_database'
Esta puede ser una respuesta tardía. Pero puede ayudar a otros. Es muy simple en MY SQL Workbench (estoy usando Workbench versión 6.3 y My SQL Version 5.1 Community edition): haga clic derecho en la tabla para la que desea crear el script, seleccione la opción 'Copiar al portapapeles -> Crear declaración'. Simplemente pegue en cualquier editor de texto que desee obtener el script de creación.
Usando la función PHP.
Por supuesto, la función de consulta ($ this-> model) debe cambiar a la suya.
/**
* Creating a copy table based on the current one
*
* @param type $table_to_copy
* @param type $new_table_name
* @return type
* @throws Exception
*/
public function create($table_to_copy, $new_table_name)
{
$sql = "SHOW CREATE TABLE ".$table_to_copy;
$res = $this->model->queryRow($sql, PDO::FETCH_ASSOC);
if(!filled($res['Create Table']))
throw new Exception('Could not get the create code for '.$table_to_copy);
$newCreateSql = preg_replace(array(
'@CREATE TABLE `'.$table_to_copy.'`@',
'@KEY `'.$table_to_copy.'(.*?)`@',
'@CONSTRAINT `'.$table_to_copy.'(.*?)`@',
'@AUTO_INCREMENT=(.*?) @',
), array(
'CREATE TABLE `'.$new_table_name.'`',
'KEY `'.$new_table_name.'$1`',
'CONSTRAINT `'.$new_table_name.'$1`',
'AUTO_INCREMENT=1 ',
), $res['Create Table']);
return $this->model->exec($newCreateSql);
}
Encontré otra forma de exportar la tabla en el archivo sql.
Supongamos que mi mesa es abs_item_variations
abs_item_variations ->structure -> propose table structure -> export -> Go
Exportar todo el formato de selección de base de datos como SQL. Ahora, abra el archivo SQL que ha descargado usando el bloc de notas, el bloc de notas ++ o cualquier editor. Verá todas las tablas e insertará consultas de su base de datos. Todos los guiones estarán disponibles allí.