¿Hay alguna manera de copiar la estructura de una tabla en una nueva tabla, sin datos, incluidas todas las claves y restricciones?Copie la estructura de la tabla en la nueva tabla
Respuesta
Eche un vistazo a pgAdmin - de lejos, la manera más fácil de hacer lo que quiera.
Haga clic con el botón derecho en la tabla, Scripts - Crear.
Bueno, el más cercano que puede obtener con SQL es:
create table new (
like old
including defaults
including constraints
including indexes
);
Pero no va a copiar todo. Las cosas más importantes que faltan son las CLAVES EXTRAÑAS. Además, los disparadores tampoco se copian. No estoy seguro de otras cosas.
Otra forma es volcar la estructura de la tabla, cambiar su nombre en vertedero, y cargarlo de nuevo:
pg_dump -s -t old databases | sed 's/old/new/g' | psql
Pero cuidado, que tan simplista sed también cambiará antiguo al nuevo en otros lugares (por ejemplo, si tiene en su columna de la tabla llamada "is_scolded" se convertirá en "is_scnewed").
La pregunta realmente es más bien: ¿por qué la necesita? Porque para diferentes propósitos, utilizaría diferentes técnicas.
Nota: "incluir restricciones" no funciona en PostgreSQL 8.3 – Ragnar123
Funcionó como un amuleto en Postgres 9.3 :) – Ganapathy
La mejor respuesta. Solo tenga en cuenta que si tiene un valor "serial" o alguna otra columna predeterminada a una secuencia, ¡usará la misma secuencia que la tabla anterior! Entonces, si insertas cosas en cualquier tabla, aumentará para ambas. – sudo
Para una copia de esquema simple, use la cláusula similar.
CREATE TABLE new_table_name (like old_table_name including all)
¿Qué tal
CREATE TABLE sample_table_copy AS (SELECT * FROM sample_table WHERE 1 = 2)
Desafortunadamente, esto no conserva las claves, restricciones o valores predeterminados. – sudo
Una mejor manera de expresar "WHERE 1 = 2" sería 'WHERE false' o no WHERE cláusula en absoluto, pero 'LIMIT 0' en su lugar. –
- 1. Copie la estructura de la tabla en la nueva tabla en sqlite3
- 2. mysql: Copie la estructura de la tabla incluyendo claves externas
- 3. Crear una tabla (estructura) de la tabla
- 4. Describir la estructura de la tabla
- 5. Copie la tabla de una base de datos a otra
- 6. ¿Cómo copiar la estructura de la tabla MySQL a la tabla en la memoria?
- 7. Mostrar la estructura de la tabla en SQL
- 8. Tabla nativa 'performance_schema'. '???' tiene la estructura equivocada
- 9. Copie los datos de la tabla con columnas comunes
- 10. ¿Puede SQLAlchemy actualizar la estructura de la tabla?
- 11. ¿Cómo imprimir la estructura de la tabla desde postgresql?
- 12. ¿Insertar una nueva columna en la tabla en sqlite?
- 13. Duplicar la tabla de mysql "estructura" usando PHP solamente
- 14. estructura de tabla de auditoría
- 15. Insertar en crear nueva tabla
- 16. Creación de tabla a partir de la estructura de otra tabla sin datos
- 17. ¿Cómo agregar una nueva columna en una tabla después de la 2ª o 3ª columna en la tabla usando postgres?
- 18. Agregar nueva fila a la tabla de datos superior
- 19. Consulta de Mysql para copiar la estructura de una tabla para crear otra tabla
- 20. MySQL Insertar registros desde varias tablas a la nueva tabla
- 21. ¿Cómo hacer que SQL Management Studio vea la nueva tabla?
- 22. Copie una tabla (incluidos los índices) en postgres
- 23. Actualización de la tabla en el desencadenante después de la actualización en la misma tabla
- 24. cómo eliminar la fila de la tabla en el diseño de la tabla en android
- 25. Copie y pegue filas en la misma tabla SQL con diferentes valores
- 26. analizar la tabla, optimizar la tabla, ¿con qué frecuencia?
- 27. ¿Qué tabla es exactamente la tabla "izquierda" y la tabla "derecha" en una declaración JOIN (SQL)?
- 28. Cómo obtener estructura de tabla en CodeIgniter
- 29. ¿Tabla de acceso en la tabla de direcciones de importación?
- 30. Copie la página web actual en una nueva ventana
solo tengo acceso a phpPgAdmin; No soy dueño del servidor. –
Bastante justo. En phpPgAdmin: navegue hasta la tabla, haga clic en Exportar, seleccione "Estructura solamente" y tenga su secuencia de comandos – ChssPly76
Estoy bastante seguro de que debe ser un error en esta instalación; solo muestra una página en blanco en el marco correcto cuando hago eso :/ –