Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-06-2012
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 16
Diego827 Va por buen camino
(Algo curioso pero que a todos nos pasó alguna vez)

Saben mis queridos amigos, me tienen mal acostumbradisimo!!! jaja se los comento porque deje abierto el explorador web, y a cada rato regreso a ver si ya respondieron. La verdad, siempre me han sacado de apuros! Se por supuesto que no se tiene un Foro-Center tipo Call-center en donde esta mi apreciado Casimiro Notevi etc, esperando que un ignorante como yo postee para responder! jaja me causo gracia y quise comentarlo. Se bien que un foro es foro, no el chat de FaceBook ni mucho menos Twitter y tampoco messenger pero me causo gracia lo anterior.

Por todas las veces que me salvan el pellejo (que feo pero me cubre del frio todavia) Gracias!
Responder Con Cita
  #2  
Antiguo 07-06-2012
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 16
Diego827 Va por buen camino
Gracias por responder!

Hola marcoszorrilla, gracias por responder. Ahora busco alguna referencia.
Responder Con Cita
  #3  
Antiguo 07-06-2012
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 16
Diego827 Va por buen camino
Encontre esto y me parece que es lo que necesito

Bueno encontre esto, me dirás si es lo que yo mismo deseo y a lo que te referías:

Código SQL [-]
CREATE TABLE SALARY_HISTORY
(EMP_NO EMPNO NOT NULL,
CHANGE_DATE DATE DEFAULT 'NOW' NOT NULL,
UPDATER_ID VARCHAR(20) NOT NULL,
SH_OLD_SALARY SALARY NOT NULL,
PERCENT_CHANGE DOUBLE PRECISION DEFAULT 0 NOT NULL CHECK (PERCENT_CHANGE BETWEEN –50 AND 50),
NEW_SALARY COMPUTED BY
(OLD_SALARY + OLD_SALARY * PERCENT_CHANGE / 100),
CONSTRAINT PK_SH PRIMARY KEY (EMP_NO, CHANGE_DATE, UPDATER_ID),
FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE (EMP_NO)
ON UPDATE CASCADE
ON DELETE CASCADE);

Marqué el área que creo que me indicas arriba, esa sería la forma de declararlo? Voy a probarlo y comento!
Responder Con Cita
  #4  
Antiguo 07-06-2012
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 16
Diego827 Va por buen camino
Excelente marcoszorrilla!

Me has ayudado a resolver mi problema.

Observa:

Código SQL [-]
CREATE TABLE PRUEBA (
  FECHA TIMESTAMP NOT NULL,
  DATO DECIMAL(2, 2));


ALTER TABLE BELEN ADD PRIMARY KEY (FECHA);

ALTER TABLE BELEN ADD CHECK (NIVEL BETWEEN 0 AND 5);

Y vualla! ahora salta un mensaje diciendo que esta violando un "check". Una pregunta más: Si necesito cambiar este valor en el futuro, como seria?
Debo primero hacer algo como:

Código SQL [-]
ALTER TABLE BELEN REMOVE CHECK (NIVEL BETWEEN 0 AND 5);
ALTER TABLE BELEN ADD CHECK (NIVEL BETWEEN 0 AND 6);

o sólo con darle:

Código SQL [-]
ALTER TABLE BELEN ADD CHECK (NIVEL BETWEEN 0 AND 6);

Como sería? Busque pero no encontré nada?! Voy a intentar hacerlo y posteo...
Responder Con Cita
  #5  
Antiguo 07-06-2012
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 16
Diego827 Va por buen camino
No puedo modificar el check creado... (help me)

Hola amigos;

Bueno pues he creado con la ayuda de marcoszorrilla la famosa restricción, empero no logro modificarla y mucho menos borrarla! ya intente usar "REMOVE" en vez de "ADD" y también intenté darle:

Código SQL [-]
ALTER TABLE BELEN ADD CHECK (NIVEL BETWEEN 0 AND 6);

Como sobreescribiendo el anterior CHECK pero no me funcionó, ¿alguna idea?
Responder Con Cita
  #6  
Antiguo 07-06-2012
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 16
Diego827 Va por buen camino
Ya lo logré!

Hola amigos:

Como no todos nacemos sabiendo, logre eliminar el check de esta manera:

Primero cometia el error de ingresar el valor fuera del check.

Y este de decia:
Código:
Opèration violates CHECK constraint INTEG_10 on view or table EJEMPLO
Entonces ejecute la siguiente instrucción en SQL:

Código SQL [-]
alter table EJEMPLO 
drop constraint INTEG_10

Y listo! lo único es que no se porque Interbase asigna el "INTEG_10" y si creo otra restricción "check" crea "INTEG_11", ¿no se puede personalizar este nombre para poder borrarlo sin tener que disparar la excepción?
Responder Con Cita
  #7  
Antiguo 07-06-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Diego.
Cita:
Interbase asigna el "INTEG_10" y si creo otra restricción "check" crea "INTEG_11", ¿no se puede personalizar este nombre para poder borrarlo sin tener que disparar la excepción?
En Firebird (y supongo que en Interbase también) podés hacer:
Código SQL [-]
ALTER TABLE EJEMPLO ADD CONSTRAINT CHECK_0_6 CHECK(NIVEL BETWEEN 0 AND 6);

De ese modo luego podrás hacer:
Código SQL [-]
ALTER TABLE EJEMPLO DROP CONSTRAINT CHECK_0_6;

Saludos.

Edito: Donde, CHECK_0_6 será el alias de la restricción.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 07-06-2012 a las 17:04:06.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Limites de Firebird gmontes Firebird e Interbase 1 24-03-2008 23:08:07
Limites de Delphi walito Varios 5 16-11-2007 15:32:34
Declaracion de nuevos tipos FGarcia Varios 2 10-05-2007 20:46:21
El Ser Humano no tiene LIMITES vtdeleon La Taberna 5 26-09-2006 17:18:36
Limites de datos muli Firebird e Interbase 1 22-10-2003 17:52:04


La franja horaria es GMT +2. Ahora son las 17:47:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi