No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Modificando tablas con ALTER TABLE

13/34
Recursos

Aportes 13

Preguntas 8

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Hasta este punto, haciendo un feedback del curso, todo va Excelente, muy claras y concisas las explicaciones.
🔥🔥🔥RetaxMaster🔥🔥🔥

El curso va excelente. Muy buen profe!

Alteré la tabla stations y la volví a modificar para llevarla al estado inicial. Le agregué FIRST para que el campo clave se posicione al principio de la tabla.

\--Crear las tablas USE metro\_cdsc; CREATE TABLE `lines` (     `id` BIGINT(20) UNSIGNED NOT NULL AUTO\_INCREMENT,     `name` VARCHAR (10) NOT NULL,    `color` VARCHAR (15) NOT NULL,     `created\_at` TIMESTAMP NOT NULL DEFAULT CURRENT\_TIMESTAMP,    `updated\_at` TIMESTAMP NOT NULL DEFAULT CURRENT\_TIMESTAMP,     PRIMARY KEY (id) )DEFAULT CHARSET=utf8mb4COLLATE=utf8mb4\_unicode\_ci; CREATE TABLE `trains`(     `serial\_number` VARCHAR (10) NOT NULL,     `line\_id` BIGINT(20) UNSIGNED NOT NULL,     `type` TINYINT(4) NOT NULL,    `year` INT(4) NOT NULL,     `created\_at` TIMESTAMP NOT NULL DEFAULT CURRENT\_TIMESTAMP,    `updated\_at` TIMESTAMP NOT NULL DEFAULT CURRENT\_TIMESTAMP,     PRIMARY KEY (serial\_number)     FOREIGN KEY (`line\_id`) REFERENCES `lineS`(`id`) )DEFAULT CHARSET=utf8mb4COLLATE=utf8mb4\_unicode\_ci; CREATE TABLE `estaciones` (     `id` BIGINT(20) UNSIGNED NOT NULL AUTO\_INCREMENT,     `name` VARCHAR (30) NOT NULL,     `created\_at` TIMESTAMP NOT NULL DEFAULT CURRENT\_TIMESTAMP,    `updated\_at` TIMESTAMP NOT NULL DEFAULT CURRENT\_TIMESTAMP,     PRIMARY KEY (id) )DEFAULT CHARSET=utf8mb4COLLATE=utf8mb4\_unicode\_ci;

🍃 Para que la termina describa la tabla lines, hay que usar las comillas invertidas, ya que si la escribes solo así te da error, como que lines es un comando de SQL

muy chevere esta clase 🙏🙏🔥
buenas, necesito ayuda para crear una nueva tabla o agregar las tablas stations y trains, al momento de colocar comando $ mysql -u "name" -p <2-create-tables.sql Enter password: \*\*\*\* ERROR 1050 (42S01) at line 5: Table 'lines' already exists me da este error.
muy buen curso use metro\_cdmx; alter table `stations` modify `id` bigint(20) unsigned not null auto\_increment;

La palabra clave CONSTRAINT se utiliza para definir explícitamente una restricción en una tabla de MySQL. Si utilizas la palabra clave CONSTRAINT, debes pasarle un parámetro indicando el nombre de esa restricción. Sin embargo, si no usas CONSTRAINT, el motor de base de datos le pone el nombre a la restricción de forma automática.

Una ventaja de usar CONSTRAINT es que puedes ponerle el nombre que tú quieras a la restricción, por si luego tienes que hacer algo con esa restricción y así puedas identificarla fácilmente. Un inconveniente es que ese nombre no puede estar duplicado, por lo que tendrías que tener control de qué nombre le pones para no repetirlo.

Se puede definir la llave primaria en la definicion de la columna con la palabra clave(PRIMARY KEY) ejm:

CREATE TABLE trains (
	serial_number VARCHAR(10) NOT NULL PRIMARY KEY,
	line_id BIGINT(20) UNSIGNED NOT NULL,
	type TINYINT(4) NOT NULL,
	year INT(4) NOT NULL,
	`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
	`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
	CONSTRAINT trains_line_id_foreign FOREIGN KEY (line_id) REFERENCES `lines` (id)
)
DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Como cree una tabla para poder modificarla luego:

Como la modifique:

A mi me salia este error: ERROR 1068 (42000) at line 3 in file: 3-ALTER-TABLE.sql: : Multiple primary key defined encontre la siguiente informacion apra corregirlo en windows con vscode: Para corregir esto, debes seguir estos pasos: Crear una nueva tabla temporal con la estructura que deseas, incluyendo la columna id modificada y la clave primaria. Copiar los datos de la tabla original a la nueva tabla. Eliminar la tabla original. Cambiar el nombre de la nueva tabla al nombre original. Aquí tienes un ejemplo de cómo hacerlo: sql Copy code USE metro\_cdmx; \-- Paso 1: Crear una nueva tabla temporal CREATE TABLE `stations\_temp` ( `id` BIGINT(20) UNSIGNED NOT NULL AUTO\_INCREMENT, `name` VARCHAR(50) NOT NULL, `created\_at` TIMESTAMP NOT NULL DEFAULT CURRENT\_TIMESTAMP, `updated\_at` TIMESTAMP NOT NULL DEFAULT CURRENT\_TIMESTAMP, PRIMARY KEY (`id`) ) DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4\_unicode\_ci; \-- Paso 2: Copiar los datos de la tabla original a la nueva tabla INSERT INTO `stations\_temp` SELECT \* FROM `stations`; \-- Paso 3: Eliminar la tabla original DROP TABLE `stations`; \-- Paso 4: Cambiar el nombre de la nueva tabla al nombre original ALTER TABLE `stations\_temp` RENAME TO `stations`; Este conjunto de instrucciones realizará la modificación deseada en la columna id y agregará la clave primaria a la tabla stations sin causar el error de "Multiple primary key defined". Asegúrate de realizar un respaldo de tus datos antes de realizar cambios importantes en la estructura de la tabla.