hola amigos,
¿como hago para eliminar una clave primaria?¿porke no me funciona "DROP INDEX PRIMARY ON tabla1'?
¿Y para mostrar todos los indices de la tabla?
Gracias, saludos:D
| |||
indices en mysql hola amigos, ¿como hago para eliminar una clave primaria?¿porke no me funciona "DROP INDEX PRIMARY ON tabla1'? ¿Y para mostrar todos los indices de la tabla? Gracias, saludos:D |
| ||||
Respuesta: indices en mysql Partamos de una base: Toda tabla debe, obligatoriamente, tener clave primaria. NO es una cosa que puedas borrar por que si. De hecho, en BBDD relacionales, una tabla sin PK es una bolsa de datos-basura. Literalmente. ¿Por qué quieres borrarla? ¿Qué es lo que quieres hacer? Lo segundo es simple: Lee el manual de referencia... http://dev.mysql.com/doc/refman/5.7/en/show-index.html Es lo que hacemos todos cuando trabajamos en BBDD.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: indices en mysql lo k kiero es redefinirla, y para ello necesito borrarla antes(desconozco si al crearla de nuevo se borra la anterior). En clase utilizamos DROP INDEX PRIMARY ON t1, pero me da un error de sintaxis "near '"primary" on t1" |
| ||||
Respuesta: indices en mysql To drop a primary key, the index name is always PRIMARY, which must be specified as a quoted identifier because PRIMARY is a reserved word:
Código MySQL:
Ver original http://dev.mysql.com/doc/refman/5.7/en/drop-index.html
__________________ What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me |
| |||
Respuesta: indices en mysql mysql> describe t1; +-------+----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+----------------------+------+-----+---------+----------------+ | id | smallint(5) unsigned | NO | PRI | NULL | auto_increment | .................................... .................... .......... +-------+----------------------+------+-----+---------+----------------+ 7 row in set (0.00 sec) mysql> drop index `primary` on t1; ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key mysql> No entiendo porke me da ese error ¿Me lo podeis explicar? Por supuesto, solo tengo una columna auto_increment. Gracias, saludos:D Última edición por alfa18; 16/02/2016 a las 06:01 |
| |||
Respuesta: indices en mysql efectivamente, lo k fallaba a la hora de borrar la PK era el atributo AI, asi redifini la columna sin el AI: no se muy bien la diferencia entre modify y change(aparte del formato), ambos permiten cambiar la definicion de una columna ¿¿no?? Hay alguna diferencia(o ventaja) entre ambos?? Ahora ya pude borrar la PK con:
Código MySQL:
Ver original lo k necesito es crear una clave compuesta id+clase, ¿¿se puede 'añadir' un campo a la PK, o definirla por completo, sin necesidad de eliminar antes la PK?? muy acertado lo de PK de tipo smallint, es solo para mis pruebas, en algo serio nunca seria menor de INT Gracias gnzsoloyo, saludos:D Última edición por alfa18; 16/02/2016 a las 08:04 |
| ||||
Respuesta: indices en mysql Una PK compuesta (se denomina asi cuando la PK se compone de más de una columna) basada en un ID autonumerico más otro dato no es una opción muy buena que digamos. Tienes que tener en cuenta que la PK debe ser única, y debe identificar al registro en forma totalmente consistente. Esto quiere decir que si la PK la compones de una parte numérica y otro campo mas, ambos campos deben poseer una combinación tal que no pueda llevar a inconsistencias. Hacer un campo ID+CATEGORIA, por ejemplo, permite usar el mismo numero de ID para N categorías. Te obligaría a realizar validaciones extras para asegurarte la unicidad de la asignación del par de datos, o bien crear un campo declarado UNIQUE... con lo que estarías ante una clave alternativa o candidata, y de esa forma la PK compuesta se vuelve superflua. La idea es que estos valores de PK serían validos en ese contexto: Cita: Como podras ver, hay variaciones en uno de los campos de la clave, que generan claves únicas legales. (1, AAA) (1, AA) (1, BB) (2, AAA) (3, AAA) Es preferible, si vas a trabajar una clave compuesta, que lo hagas con datos propios de la entidad representada, y que puedan validarse como únicos y no nulables. Dinos cual es la entidad y el caso real, y veamos como te conviene hacer la PK.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
Etiquetas: |