elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  CREATE TABLE <name> LIKE <name> importando primary keys and foreign keys
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: CREATE TABLE <name> LIKE <name> importando primary keys and foreign keys  (Leído 4,458 veces)
Kasswed
Colaborador
***
Desconectado Desconectado

Mensajes: 5.295

Rolling Stones


Ver Perfil
CREATE TABLE <name> LIKE <name> importando primary keys and foreign keys
« en: 28 Enero 2010, 03:29 am »

Hello there.

I'm looking for some statement to import the fact that an attribute is a primary key or a foreign key when I use the CREATE TABLE LIKE statement.

El caso es que puedo copiar las tablas pero no hay manera de que me copie también el hecho de que un atributo es clave primaria o externa, y después de tanto buscar ya no sé si quiera si eso será posible.

Estoy usando una base de datos DB2.

Gracias.


En línea

"He who allows himself to be insulted, deserves to be."

Repórtame cualquier falta a las normas del foro por mensaje privado.
^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: CREATE TABLE <name> LIKE <name> importando primary keys and foreign keys
« Respuesta #1 en: 28 Enero 2010, 05:11 am »

Si se puede hacer, yo particularmente no puedo confirmaterlo porque lo desconozco  ;)
Pero, hasta lo que me concierne.

CREATE TABLE <tabla> LIKE....
No copia ni porta ninguno de los registros (data) ni indices de la tabla padre (digase de la tabla a la cual le estas haciendo la copia) en su lugar se te crea una tabla con la misma estructura logica de la tabla padre (nombre de los campos) pero vacia.

CREATE TABLE <tabla> AS SELECT...
Esta te hace una copia de la tabla padre con todos los registros(data) que esta contenga asi como la estructura logica de la tabla padre (nombre de los campos). Pero como la anterior no respeta los indices ni llaves primarias ni foraneas nada nada...

Que he solido hacer en estos casos? Utilizar CREATE TABLE <tabla> ... AS SELECT ...  y una vez creada la tabla copia, proceder a alterarla para especificarle cual es el foreign key y a que campo hara referencia como clave padre:

ALTER TABLE <tabla> ADD FOREIGN KEY(campo de la tabla clonada que es primary) REFERENCES <tabla_padre>(campo primary de la tabla padre) ON DELETE CASCADE;

Con lo anterior y si el motor es transaccional que asumo que si, pues comienza a respetarse las leyes de las llaves foraneas he indices de padre a hijo. Al menos esto es asi en MySQL y Oracle, si existe una manera fija de hacerlo con CREATE TABLE... bien, pero yo particularmente no la conozco, si alguien conoce una via mas sencilla bienvenida sea. Yo utilizo ALTER por ser un estandar SQL y por servirme en cualquier Base de Datos relacional compatible con el ANSI SQL, y pues no utilizar un estandar fijo de un motor para este tipo de cosas.

Un saludo.


En línea

ssccaann43 ©


Desconectado Desconectado

Mensajes: 792


¬¬


Ver Perfil
Re: CREATE TABLE <name> LIKE <name> importando primary keys and foreign keys
« Respuesta #2 en: 3 Febrero 2010, 16:32 pm »

Si es SQL Server, es así...

ALTER TABLE [dbo].[TABLA] WITH NOCHECK ADD
   CONSTRAINT [PK_TABLA] PRIMARY KEY  CLUSTERED
   (
      [Campo]
   )  ON [PRIMARY]
GO

Y tifa lo mejor es usar Alter Table para estos casos...!
En línea

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
2 foreign keys (delete cascade) haciendo referencia a una misma tabla
Bases de Datos
Littl3 1 3,001 Último mensaje 16 Septiembre 2011, 04:57 am
por fran800m
{SOLUCIONADO} Duda ¿Cómo se usa CREATE TABLE en PHP?
PHP
|Miguel| 4 2,181 Último mensaje 4 Abril 2012, 17:33 pm
por |Miguel|
Así hackean cajeros con Windows XP usando las ‘Sticky Keys’
Noticias
wolfbcn 2 833 Último mensaje 27 Diciembre 2017, 15:08 pm
por #!drvy
Instala Windows 10 sin claves: descubre las keys genéricas de Microsoft
Noticias
wolfbcn 0 397 Último mensaje 6 Diciembre 2019, 21:13 pm
por wolfbcn
Alternativa a las Virtual Keys de Windows.
Windows
marax 7 1,567 Último mensaje 2 Agosto 2020, 14:35 pm
por marax
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines