cambiar clave primaria

vForum público de la plataforma de desarrollo Velneo

Moderador: vCoaches

Responder
SYJ
vRookie
vRookie
Mensajes: 24
Registrado: 03 Jul 2007, 12:38

cambiar clave primaria

Mensaje por SYJ »

Alguien sabe como puedo cambiar la clave primaria de una tabla? :S

estamos empezando con velneo y nos liamos un poco
hemos tenido que crear una tabla desde el principio, y por cierto, cuando "borras" una tabla, simplemente la mete a "Tablas no usadas". ¿Hay forma de borrarla totalmente?

:/

PD: Venimos de Visual Basic y nos cuesta adaptarnos, nos dijeron que nos olvidáramos totalmente de Visual, pero nos cuesta jeje.

Un saludo
Avatar de Usuario
rgvigo
vAdviser
vAdviser
Mensajes: 633
Registrado: 29 Oct 2005, 01:42

Mensaje por rgvigo »

Cuando borras una tabla la borra definitivamente del proyecto, lo que estais haciendo es borrarla del editor de esquemas, por eso la tabla sigue existiendo.

En cuanto a lo de la clave primaria no se exactamente lo que quieres cambiar.

Un saludo
SYJ
vRookie
vRookie
Mensajes: 24
Registrado: 03 Jul 2007, 12:38

Mensaje por SYJ »

pues tengo el campo "Codigo de libro" y el campo "Numero de registro"

la clave primaria actualmente es "Codigo de Libro" y quiero que sea "Numero de Registro"...

:S no se si queda claro
Avatar de Usuario
rgvigo
vAdviser
vAdviser
Mensajes: 633
Registrado: 29 Oct 2005, 01:42

Mensaje por rgvigo »

Si con el numero de registro te refieres al codigo de la linea este seria el campo codigo de una tabla maestra, si no puedes crear la tabla con su campo codigo y los dos campos que necesites y podrás buscar, filtrar, enlazar etc por cualquiera de ellos.

El campo codigo de la tabla es el unico que puede ser autonumerico y el que se usa para enlaces entre tablas, pero una vez enlazadas puedes acceder al resto de campos de esta.

Un saludo
SYJ
vRookie
vRookie
Mensajes: 24
Registrado: 03 Jul 2007, 12:38

Mensaje por SYJ »

quiero que el campo "Numero de Registro" (numero de registro de un libro)
sea campo unico e identificativo para cada libro que meta en la tabla "Libros"

el codigo, tb será unico e identificativo, pero que no sea el principal... xD no se si me explico
Avatar de Usuario
Fran
vCoach
vCoach
Mensajes: 6599
Registrado: 21 Sep 2005, 08:23

Mensaje por Fran »

Buenos dias:

Puedes crear un índice de clave única por cualquier campo, además del código.

Si creas este índice, Velneo no permitirá valores duplicados en este campo mientras edites con formularios. Si utilizas tubos o altas directas, tienes que comprobarlo tu por proceso.

Eso si, los enlaces entre tablas siempre se realizan utilizando el valor del campo código.
Un saludo,

Francisco Javier Pérez Novo
EfeUno Consultores de Gestión y Software, S.L.
fjpnovo@efeuno.org
http://www.efeuno.org
(+34) 91 519 44 86
Skype: Fran-EfeUno

Google Maps:
40.447943147972445, -3.6719655990600586
AdolfoMont
vMate
vMate
Mensajes: 89
Registrado: 17 Nov 2005, 16:58

Mensaje por AdolfoMont »

Olvidate del Concepto Clave Primaria. Aqui cualquier indice actua como lo que tu entiendes por clave primaria.

El campo COdigo solo sirve para que otras tablas apunten a la que tratas en cuestion.

Por ejemplo en tu caso, tienes una tabla libros, con un codigo autonumerico. El primer libro que des de alta sera el 1, el segundo sera el 2, y asi sucesivamente y a ti eso te da igual.

Ahora bien otro campo de la tabla libros sera por ejemplo codigo ISBN, otro referencia propia y otro referencia del proveedor, pongo este ejemplo para complicarlo. Los tres campos pueden ser 3 indices distintos y si quieres pueden ser "de Calve Unica". EN cualquier momento podras localizar estos libros por cualuiera de esas referencias.

Lo que pasa es que si por ejemplo, tu montas una tabla de Prestamos de libros, un campo sera el puntero al libro y este enlace internamente lo hace por el campo codigo, pero tu nunca lo vas a usar. Tu localizaras el libro por nombre, referencia isbn, referencia propia o lo que quieras y daras de alta el prestamo, internamente estara apuntando al libro 1, 2 y 3 pero eso , repiuto no es de ningun valor, para ti.

Ahora tienes todas las claves primarias que quieras. En algun caso si que puedes hacer coincidir ambos y por ejemplo que el codigo de cliente sea la referencia y no sea autonumerico, pero en principio no aporta ninguna ventaja a tu aplicacion, al que el codigo sea autonumerico y tengas un campo referencia, por el que buscar. Ademas en la practica lo que haras sera buscarlo por trozos de palabra en la inmensa mayoria de casos. Es costoso cambiar el chip
Avatar de Usuario
ebarbeito
vAdviser
vAdviser
Mensajes: 692
Registrado: 29 Mar 2006, 16:37

Mensaje por ebarbeito »

Buenas,

Comentando más sobre la duda del presunto borrado de la tabla, desde el esquema de tablas, en este hilo hay más información [1] Sobre lo del borrado:
Otra cosa que hay que tener en cuenta al utilizar los esquemas de tablas (que, por cierto, es una herramienta muy útil) es que cuando eliminas una tabla de un esquema, no se borra de la estructura de tablas. Es decir, la quitas del esquema pero la tabla sigue formando parte del proyecto. Es una tontería pero puede despistar si te coge de imprevisto jeje
Un saludo

[1] - http://forum.velneo.com/es/viewtopic.php?t=16447
#!/Enrique/Barbeito/García ...
http://enrique.barbeito.org

¡Apúntate al grupo Velneo en Last.fm! [+info]
Avatar de Usuario
gAb
vAdviser
vAdviser
Mensajes: 311
Registrado: 28 May 2006, 23:05

Mensaje por gAb »

como bien dice ebarbeito, la tabla la borras del esquema, pero sigue estando en la estructura, para eliminarla definitivamente, tan solo vas a la parte izquierda, en la estructura de datos, allí está la relación de tablas, la eliminas de ahí y ya la tienes fuera definitivamente, ahora bien, una vez hecho esto, deberías ir a la barra de herramientas y pulsar sobre el botón "Objetos con errores", pues al eliminar la tabla, dejas huérfanos, o sea, hay punteros de relaciones apuntando a una tabla inexistente, con lo que tendrás que eliminarlos (bueno, todo esto suponiendo que la tabla formara parte de relaciones, claro)

en cuanto a la clave primaria, y siguiendo con el comentario de AdolfoMont, si quieres prescindir del campo código, te vas a índices y creas un índice del campo que tu quieras, puede ser numérico, alfabético, alfanumérico, por palabras... aquí el concepto índice tiene otra dimensión, te sirve para limitar la entrada de datos en un campo, pero también te sirve para realizar búsquedas, así, como comentan los compañeros, puedes declarar varios índices, de clave única o no, y a través de estos relacionar datos en tablas

en vb crearías un campo isbn en una tabla, y el mismo campo isbn en otra, para relacionarlas, con lo que almacenarías el mismo dato isbn en dos tablas, aquí lo que haces es crear un campo isbn en una tabla, y tan solo apuntarlo desde otra, y a través de esta relación, no solo accedes a este campo, sin a todos los campos de la tabla, con lo que puedes usar todos los campos de la tabla apuntada tan solo relacionandolos, y no duplicando datos y consiguientemente desaprovechando espacio.

cuesta un poco quitarse el chip, pero cuando lo consigas, no volverás a ponertelo, seguro...
Responder