Hola Francisco, Francisco Martagón Gordillo escribió: > Hola: > > Un compañero del foro de soporte hace la siguiente pregunta. La posteo > aquí porque sé que hay algunos expertos que no desean registrarse en el > foro. Espero que no moleste a nadie, sólo quiero echar una mano. Si hago > algo incorrecto ruego me informen.
pues deberías decirle que se suscriba también a estas listas, a no ser que no te moleste jugar al palomo mensajero (pues verás abajo que le falta información) > Aquí va la consulta que hace en dos mensajes: > > = = = = = = = > Hola a todo el mundo. No se si este mensaje está bien escrito aquí, por > si toca escribirlo en la parte de "principiantes" pero allí va. > Estoy haciendo una base de datos, y necesito crear restricciones a dos > tablas por lo menos. En la vista de diseño no da esa opción y en la del > asistente tampoco. Como estoy viendo, se pueden crear vistas y consultas > en SQL. Quería saber si hay alguna forma de crear, o editar, la tabla en > SQL para poder poner la restricción que me hace falta. > > = = = = = = = > > Ante todo, gracias por la atención que me has prestado. Veras, con > "restricciones" me refiero a los triggers y la sentencia "constrains" > del SQL. En una de las tablas que tengo en mi base de datos, tengo una > restricción, la cual es que como máximo sólo puede haber dos apuntes > distintos con un subconjunto de campos con valores iguales pero las > tablas tienen una relación de uno a muchos. Creo que, si presto atención > y repaso, puedo respetar la restricción yo, pero mi bd la van a usar > otras personas. > Lo que digo es que me interesaría saber, si es que se puede, cómo editar > o crear una tabla en SQL para ver como le puedo poner esta restricción a > la tabla o si esto que planteo se puede hacer de otra manera. Espero que > mi explicación sea correcta y gracias de nuevo. Un saludo. > > = = = = = = = > > Espero que puedan ayudarle, y así de paso aprendo algo nuevo sobre SQL y > BASE. > > Un saludo. la información elemental que falta es: ¿con qué tipo de base de datos está trabajando? ¿se trata con un archivo de OOo Base (*.odb), que contiene la base de datos embebida, es decir que los datos están dentro de ese archivo? ¿o está empleando un verdadero RDBMS, tipo MySQL o Postgres? Información vital, pues en HSQLDB los triggers se pueden implementar sólo como Java classes [== hay que saber programar en Java, http://hsqldb.org/doc/guide/ch09.html#create_trigger-section](en la próxima versión se podrán utilizar simplemente sentencias SQL http://hsqldb.org/web/features190.html DATA DEFINITION LANGUAGE ENHANCEMENTS Supports full syntax of SQL TRIGGER definition for row level triggers using SQL procedure statements (as opposed to Java classes) CREATE TRIGGER <name> {BEFORE | AFTER} {INSERT | DELETE | UPDATE [OF (<column name>, ..)] ON <table name> [ REFERENCING OLD [ROW] [AS] <old transition variable name> | NEW [ROW] [AS] <new transition variable name>] [FOR EACH ROW] [WHEN (<search contition>)] <sql procedure statement> ). Lo mismo se aplica a los CONTRAINTS, HSQLDB tiene diferentes formas de aplicar constricciones [sic.]: ALTER TABLE <tablename> ADD [CONSTRAINT <constraintname>] CHECK (<search condition>); ALTER TABLE <tablename> ADD [CONSTRAINT <constraintname>] UNIQUE (<column list>); CREATE [MEMORY | CACHED | [GLOBAL] TEMPORARY | TEMP | TEXT] TABLE <name> ( <columnDefinition> [, ...] [, <constraintDefinition>...] ) [ON COMMIT {DELETE | PRESERVE} ROWS]; donde constraintDefinition es [CONSTRAINT <name>] UNIQUE ( <column> [,<column>...] ) | PRIMARY KEY ( <column> [,<column>...] ) | FOREIGN KEY ( <column> [,<column>...] ) REFERENCES <refTable> ( <column> [,<column>...]) [ON {DELETE | UPDATE} {CASCADE | SET DEFAULT | SET NULL}] | CHECK(<search condition>) etc. En resumidas cuentas, no hay GUI para hacer eso (salvo para las constricciones relacionadas con relaciones, tamaño de campos, et al.). Debes hacerlo mediante instrucciones SQL ("Herramientas" - "SQL"), y el contenido exacto de la instrucción depende del tipo de base de datos/ RDBMS, pues si bien SQL es estándar, cada cual hace la suya... Saludos Ariel. -- Ariel Constenla-Haile La Plata, Argentina "Aus der Kriegsschule des Lebens - Was mich nicht umbringt, macht mich härter." Nietzsche Götzendämmerung, Sprüche und Pfeile, 8. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
