Estoy tratando de quitar un índice :

DROP INDEX PK_CHARGES

pero me sale este error

no pueden bajar el índice utilizado para la ejecución de la único/clave principal

¿Por qué estoy recibiendo este error? Voy a darle más información si usted necesita alguna.

Cómo resolverlo?

Editar tengo ninguna clave principal en la tabla, pero me he encontrado con esta extraña índice que no recuerdo que me había agregado:

nombre de índice = SYS_C0040476 que tienen las mismas columnas

  • Debido a que el índice se utiliza para aplicar una clave principal (supongo, desde el PK en el nombre), como dice el mensaje? Por qué estás tratando de caer?
  • ¿Invesitigate para la aplicación de que únicos/clave principal se utiliza el índice? Si es así, ¿qué has descubierto?
  • Estoy tratando de dejar caer el índice y no tengo una clave principal
  • Usted tiene una clave principal @Moudiz… que es lo que se dice.
  • desde pl/sql me clic derecho sobre la tabla, haga clic en la vista, voy a la pestaña llamada ‘claves’ y su vacío.
InformationsquelleAutor Moudiz | 2013-07-15

4 Comentarios

  1. 6

    Puede consultar la all_constraints no vista de rendimiento ver que la restricción se utiliza el índice, y la tabla que se aplica a, e.g:

    select owner, constraint_name, constraint_type,
        table_name, index_owner, index_name
    from all_constraints
    where index_name = 'PK_CHARGES';

    Yo esperaría que el nombre de la tabla a ser «CARGOS», el nombre de la restricción para que coincida con el nombre del índice, y la restricción de tipo ‘P’. Pero ya que usted tiene una tabla en mente, tal vez los nombres no están siguiendo un útil convención. Tal vez una versión antigua de la tabla se cambió el nombre, que dejaría a las restricciones contra el nuevo nombre (por ejemplo, CHARGES_BACKUP o algo).


    Usted dijo que usted haga clic en la tabla, a continuación, en la vista. Tal vez usted no está mirando a la mesa que la restricción/índice; o tal vez usted está buscando en una vista en la parte superior de la tabla real. También mencionar SYS_ índice en las mismas columnas que no puede ser en la misma tabla. ¿Tienes varias tablas similares, o el acceso a múltiples esquemas? Usted debería ejecutar la consulta anterior para que el índice demasiado. Como se menciona anteriormente, usted puede encontrar una vieja versión (o versiones) de la tabla.


    Una vez que hayas identificado en la tabla que la restricción está en, usted necesitará decidir si en realidad debería ser el mantenimiento del mismo, y si no se puede quitar por quitar la restricción con un ALTER TABLE comando.

    • Es normal que yo no busque el nombre en mi esquema ? Me refiero a que tuvo un resultado de : propietario:esquema diferente , constrant nombre=pk_charges…. pero en mi esquema, yo no encuentro mi nombre de restricción
    • por cierto, sí, todos los tipos fueron P
    • depende de su entorno. Si estás en un entorno dev, donde la gente tiene sus propias copias de los objetos, a continuación, no es inusual; pero en ese caso probablemente no debería estar tratando de dejar caer el índice/restricción en primer lugar, si es que pertenece a alguien más.
    • gracias por tu ayuda alex he encontrado el problema estaba en otra mesa , que estaba buscando en la mesa equivocada
  2. 3

    El problema con

    Pero me he encontrado con esta extraña índice que no me rember me hadve agregar

    viene porque no añadirlo. Tenía una clave principal y, a continuación, se te cayó, pero cuando se puede hacer que Oracle no soltar los asociados único índice que cada clave primaria tiene.

    De modo que al colocar una clave principal que tiene que soltar el único índice de la clave primaria, que increíblemente tiene el mismo nombre que la clave principal había.

    Así que, para dejar a un MY_TABLE_PK debe hacer:

    ALTER TABLE MY_TABLE DROP PRIMARY KEY DROP INDEX;

    para asegurarse de que el índice está caído.

  3. 1

    «desde pl/sql me clic derecho sobre la tabla»

    El problema con la IDEs es que nos hacen sentir muy productivo, porque podemos hacer las cosas con sólo un clic, en lugar de escribir algo de código. Este es un problema porque cuando algo inusual sucede el IDE no es bueno para la investigación y nos falta la comprensión de la estructura subyacente de la base de datos que necesitamos para ayudarnos a nosotros mismos.

    Si quieres aprender la base de datos de Oracle el peor cosa que puedes hacer es descargar Programador de SQL o PLSQL Developer o TOAD. Todas son herramientas muy bien, pero las únicas personas que deben usar ellos son las personas que no necesita usarlos.

    • APC no significa que si estoy usando el botón derecho del ratón en la tabla significa que yo soy el aprendizaje de oracle’, como usted meantioned del IDE puede mostrar las cosas rápidamente, mi problema y de los errores se muestran a partir de los códigos y querries. que comentario es unpropriate, porque usted no sabe mi experiencia para que no me juzguen
    • «Si usted desea aprender [Oráculo] la peor cosa que puedes hacer es descargar SQL Developer…», etc. Eso simplemente no es cierto. El IDE le da una enorme ventaja como punto de partida – de saber que nada para tener la guía de la interfaz familiar de principios para ayudar con los conceptos básicos hasta que haya una oportunidad para desarrollar una comprensión completa. Creo que tu comentario parece que está tratando de menospreciar, de todos modos el que empieza a salir con otra cosa que un editor de texto básico para la codificación!

Dejar respuesta

Please enter your comment!
Please enter your name here