37 lines
1.7 KiB
SQL
37 lines
1.7 KiB
SQL
-- ============================================================
|
|
-- Del Austral — Migración de base de datos (versión 9)
|
|
-- ============================================================
|
|
-- Cambia la restricción de DNI único: antes era único en TODA
|
|
-- la tabla de pacientes, lo cual impedía que dos profesionales
|
|
-- distintos cargaran un paciente con el mismo DNI (algo que sí
|
|
-- puede pasar legítimamente, ya que cada profesional tiene sus
|
|
-- propios pacientes, completamente separados de los demás).
|
|
--
|
|
-- Ahora el DNI tiene que ser único solo DENTRO de los pacientes
|
|
-- de un mismo profesional — sigue sin poder cargarse el mismo
|
|
-- DNI dos veces para el mismo profesional, pero sí puede
|
|
-- repetirse entre profesionales distintos.
|
|
--
|
|
-- No borra ni modifica pacientes, sesiones, citas ni adjuntos.
|
|
--
|
|
-- Cómo aplicarlo:
|
|
-- 1. Entrá a phpMyAdmin → tu base de datos.
|
|
-- 2. Pestaña "SQL" (no "Importar").
|
|
-- 3. Pegá todo este archivo y ejecutá.
|
|
-- ============================================================
|
|
|
|
SET NAMES utf8mb4;
|
|
|
|
-- Quitamos el índice único global sobre "dni". El nombre del
|
|
-- índice suele ser igual al de la columna ("dni"), pero si tu
|
|
-- base de datos lo llamó distinto y este comando da error,
|
|
-- entrá a phpMyAdmin → tabla "pacientes" → pestaña "Estructura"
|
|
-- → abajo, donde dice "Índices", buscá el índice de tipo
|
|
-- "UNIQUE" sobre la columna dni y anotá su nombre real para
|
|
-- reemplazarlo en la siguiente línea.
|
|
ALTER TABLE pacientes DROP INDEX dni;
|
|
|
|
-- ...y agregamos uno único compuesto (profesional_id + dni), que
|
|
-- es el que realmente queremos: único por profesional, no global.
|
|
ALTER TABLE pacientes ADD UNIQUE INDEX idx_dni_por_profesional (profesional_id, dni);
|