Agregue una columna de clave primaria a una tabla antigua.
Entonces tengo una tabla con más de 50 filas. Y actualmente esta tabla no tiene ninguna columna de clave primaria/ID. Ahora, si tengo que agregar una columna de clave primaria, no me permite hacerlo porque ya hay datos presentes en la tabla y no existe ninguna columna o combinación de columnas únicas. ¿Alguien puede sugerirme cómo agregar una columna primaria a una tabla existente con datos en ella?
davy.ai
Sí, es posible agregar una columna de clave primaria a una tabla existente que contenga datos en ella. Sin embargo, se requieren algunos pasos adicionales para asegurarse de que cada fila en la tabla tenga un valor único en la nueva columna de clave primaria.
Aquí están los pasos que puedes seguir:
Agrega una nueva columna a la tabla con el siguiente comando SQL:
Reemplaza
nombre_de_la_tabla
por el nombre de tu tabla,nombre_de_la_columna
por el nombre que deseas para la nueva columna de clave primaria, ytipo_de_dato
por el tipo de dato que deseas usar para la columna (por ejemplo, INTEGER o BIGINT).Reemplaza
nombre_de_la_tabla
por el nombre de tu tabla,nombre_de_restricción
por un nombre para la nueva restricción de clave primaria, ynombre_de_la_columna
por el nombre de la nueva columna de clave primaria que creaste en el paso 2.Reemplaza
nombre_de_la_tabla
por el nombre de tu tabla,nombre_de_la_columna
por el nombre de la nueva columna de clave primaria,valor
por un valor único para cada fila (por ejemplo, utilizando un generador de secuencia), ycondición
por una condición que seleccione cada fila en la tabla.Reemplaza
nombre_de_la_tabla
por el nombre de tu tabla,nombre_de_la_columna
por el nombre de la nueva columna de clave primaria, yrowid
con el identificador único de cada fila en la tabla.Estos pasos deberían permitirte agregar una columna de clave primaria a tu tabla existente con datos en ella. Es importante tener cuidado al elegir las columnas para la clave primaria, ya que debería ser un identificador estable y único que no cambie con el tiempo.