fastapi-mariadb / remove_all_unique.py
Moibe's picture
Tabla registro is now creacion
61c4334
#!/usr/bin/env python3
"""Script para quitar todos los UNIQUE de la tabla creacion"""
from connection import get_connection
import sys
def quitar_todos_unique():
"""Elimina todas las restricciones UNIQUE"""
conn = get_connection()
if not conn:
print("❌ Error: No se pudo conectar a la base de datos")
sys.exit(1)
try:
cursor = conn.cursor()
print("🔧 Eliminando todas las restricciones UNIQUE...")
print("-" * 60)
# Obtener todos los índices UNIQUE
cursor.execute("""
SELECT CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE TABLE_NAME = 'creacion'
AND COLUMN_NAME IN ('uid', 'correo')
AND CONSTRAINT_NAME != 'PRIMARY'
""")
constraints = cursor.fetchall()
if constraints:
for constraint in constraints:
constraint_name = constraint[0]
print(f" Eliminando índice: {constraint_name}")
cursor.execute(f"ALTER TABLE `creacion` DROP INDEX `{constraint_name}`")
conn.commit()
print("\n✅ Todos los UNIQUE eliminados")
# Verificar índices finales
cursor.execute("SHOW INDEXES FROM `creacion`")
indices = cursor.fetchall()
print("\n🔑 Índices de la tabla (finales):")
print("-" * 60)
for idx in indices:
print(f" Columna: {idx[4]:<20} Tipo: {idx[2]:<20} Único: {idx[1]}")
cursor.close()
conn.close()
print("\n✅ Tabla actualizada correctamente")
except Exception as e:
print(f"❌ Error: {e}")
sys.exit(1)
if __name__ == "__main__":
print("\n🔄 Quitando todas las restricciones UNIQUE...")
print("=" * 60)
quitar_todos_unique()
print("=" * 60)
print("\nℹ️ Ahora uid y correo pueden tener valores duplicados")