• Domingo 22 de Diciembre de 2024, 18:25

Autor Tema:  SQL insertar  (Leído 1732 veces)

jade.tko

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
SQL insertar
« en: Lunes 25 de Enero de 2010, 16:16 »
0
Hola, mi primer post acá, ojala me puedan ayudar =)

Tengo 3 tablas del tipo supertipo y subtipos, ambas excluyentes aquí va el código:



CREATE TABLE persona
(
rut varchar(20) NOT NULL PRIMARY KEY,
tipo varchar(30) NOT NULL CHECK(tipo IN ('postulante', 'contratado')),
nombre varchar(45) NOT NULL,
direccion varchar(45)NOT NULL,
mail varchar(30) NOT NULL,
nacionalidad varchar(20) NOT NULL,
edad int NOT NULL,
sexo varchar(10) NOT NULL CHECK (sexo IN ('Hombre','Mujer')),
estado_civil VARCHAR(10) NOT NULL CHECK (estado_civil IN('soltero(a)','casado(a)','viudo(a)', 'separado(a)')),
UNIQUE (rut, tipo)
)

CREATE TABLE contratados
(
rut varchar(20) PRIMARY KEY REFERENCES persona(rut),
tipo varchar(30) NOT NULL CHECK(tipo = 'contratado') DEFAULT 'contratado',
fecha_ingreso_sistema datetime NOT NULL,
fecha_contrato datetime NOT NULL,
fin_contrato DATETIME NOT NULL,
FOREIGN KEY(rut, tipo) REFERENCES persona(rut,
tipo),
UNIQUE (tipo_funcionario)

)

CREATE TABLE postulantes
(
rut varchar(20) PRIMARY KEY REFERENCES persona(rut),
tipo varchar(30) NOT NULL CHECK(tipo = 'postulantes') DEFAULT 'postulante',
fecha_ingreso_sistema datetime NOT NULL,
fecha_contrato datetime NOT NULL,
fin_contrato DATETIME NOT NULL,
FOREIGN KEY(rut, tipo) REFERENCES persona(rut,
tipo),
UNIQUE (tipo_funcionario)

)



La persona puede ser o contratado o postulante, tema que valide mediante un chek como se puede ver ahi...ahora mi problema es como inserto
de la manera que, la BD sepa si insertar en postulantes o en contratados como deberia ser esa sentencia? o sería con un procedimiento almacenado, de se asi me podría pasar algun tutorial o link lo que sea sería de gran utilidad...



adioss gracias de ante mano :hola:

arielb

  • Moderador
  • ******
  • Mensajes: 771
  • Nacionalidad: pa
    • Ver Perfil
    • http://coder-pa.blogspot.com
Re: SQL insertar
« Respuesta #1 en: Miércoles 27 de Enero de 2010, 22:46 »
0
Creo que sería más eficiente, un procedimiento almacenado que verifique una variable de entrada que si es postulante haga el insert en postulantes y si es contratados haga el insert en contratados y de lo contrario en una variable de salida retornas retornas el proceso que hizo o no hizo
"Porque de tal manera amó Dios al mundo que dio a su hijo unigénito para que todo aquél que en él crea no se pierda mas tenga vida eterna"
Juan 3:16

http://coder-pa.blogspot.com

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: SQL insertar
« Respuesta #2 en: Jueves 28 de Enero de 2010, 15:16 »
0
Claro con un SP, o desde el mismo sistema que utilizas para insertar (aplicacion) lo envias a una u otra tabla

ademas siendo la estructura identica creo que te convendria usar la misma tabla al fin de cuentas ya tienes un campo "TIPO"


Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

jade.tko

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: SQL insertar
« Respuesta #3 en: Sábado 30 de Enero de 2010, 19:12 »
0
gracias por la respuestas y sip en definitiva lo haré por medio del formulario es más fácil por allí



:)