para hacer comillas invertidas en windows se hacen con alt+96
Importante el listado de caracteres (Charset) para que la base de datos pueda almacenar los caracteres latinos.
.
Hace mucho tiempo me paso en un proyecto, la aplicacion funcionaba (era .NET y usaba SQL) pero algunas busquedas fallaban.
.
Era el cotejado, el collate no se correspondia, luego de cambiarlo para caracteres latinos, todo funciono bien.
Buen aporte, si, es algo que puede complicarte y no me imagino que lo pienses en una primera instancia...
Me puse a averiguar los tipos de datos existentes en MySQL/MariaDB e hice un tutorial con esa información.
para los que tienen problemas con el codigo y les aparecen errores como este en windows:
PS C:\Users\xxxxxx\Desktop\FirstSteps\mariadb> mysql < name_file.sql
At line:1 char:7
+mysql < 2.create-tables.sql
The '<' operator is reserved for future use.
To add the table before than log :
Get-Content name_file.sql| mysql -u user.example-p --database=database_name_ex;
eso resolveria el problema del '<'
pero si quieres crear la tabla desde adentro de la terminal de mariadb te recomiendo ejecutar todo el codigo adentro
1.logiar2.USE database_name;3.CREATETABLE`lines`(`id`BIGINT(20)UNSIGNEDNOTNULLAUTO_INCREMENT,`name`VARCHAR(10)NOTNULL,`color`VARCHAR(15)NOTNULL,`created_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,`updated_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(`id`))DEFAULTCHARSET= utf8mb4
COLLATE= utf8mb4_unicode_ci;por otro lado me di cuenta que la primary key a mi no me servia sin las ``, recomiendo agregarlas si tienes el mismo problema**
Si sigues com probemas te recomiendo revisar tus permisos como administrador:
SHOWGRANTSFOR'nombre_de_usuario'@'localhost';
USE metro_cdmx;CREATETABLE`lines`(`id`BIGINT(20)UNSIGNEDNOTNULLAUTO_INCREMENT,`name`VARCHAR(10)NOTNULL,`color`VARCHAR(15)NOTNULL,`created_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,`updated_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(id))DEFAULTCHARSET=utf8mb4
COLLATE=utf8mb4_unicode_ci;CREATETABLE`trains`(`serial_number`VARCHAR(10)NOTNULL,`line_id`BIGINT(20)UNSIGNEDNOTNULL,`type`TINYINT(4)NOTNULL,`year`INT(4)NOTNULL,`created_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,`updated_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(serial_number))DEFAULTCHARSET=utf8mb4
COLLATE=utf8mb4_unicode_ci;CREATETABLE`stations`(`id`BIGINT(20)UNSIGNEDNOTNULLAUTO_INCREMENT,`name`VARCHAR(50)NOTNULL,`created_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,`updated_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(id))DEFAULTCHARSET=utf8mb4
COLLATE=utf8mb4_unicode_ci;
Solo falta agregar la FK a la tabla trenes
Necesito ayuda , cuando trato de hacer los pasos dentro de la terminal no me deja crear el archivo... me sale algo de que el operador '<' esta reservado para uso futuro...
"
At line:1 char:7
mysql < 2-create-tables.sql;
~
The '<' operator is reserved for future use.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : RedirectionNotSupported
"
Ayudaaaaaaaaaa
ESTOY IGUAL, LO SOLUCIONASTE?
Usa el siguientes comando, a mi me funciono asi:
mysql -u "nombreUsuario"-p <2-create-tables.sql
¿Por qué en el campo id de la tabla lines se declara 'UNSIGNED' y 'NOT NULL' si al declararlo 'AUTO_INCREMENT' automáticamente de le dice que no estará vacío ni retrocederá en el valor (1,2,3...)?
.
A mí no me funcionó de la manera en que lo escribió el profesor, me devolvía error de sintaxis. Hice los siguientes cambios y me funcionó:
Este profe es uno de los mejores de platzi sin lugar a dudas! Un capo!
NO SE POR QUE NO MEDEJA HACER LAS TABLAS CON EL ERCHIVO, pero asi queda mi codigo
-- crear las tablas
USE metro_cdmx;CREATE table `lines`(-- columnas de la tabla
`id`BIGINT(20)UNSIGNEDNOTNULLAUTO_INCREMENT,`name`VARCHAR(10)NOTNULL,`color`VARCHAR(15)NOTNULL,`created_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,`updated_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(id))DEFAULTCHARACTERSET=utf8mb4
COLLATE=utf8mb4_unicode_ci;CREATETABLE`stations`(`id`BIGINT(20)UNSIGNEDNOTNULLAUTO_INCREMENT,`name`VARCHAR(10)NOTNULL,`created_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,`updated_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(`id`))DEFAULTCHARACTERSET=utf8mb4
COLLATE=utf8mb4_unicode_ci;CREATETABLE`trains`(`serial_number`VARCHAR(20)NOTNULL,`line_id`BIGINTUNSIGNEDNOTNULL,`type`ENUM('moderno','viejo')NOTNULL,`year`YEARNOTNULL,`created_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,`updated_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(`serial_number`))DEFAULTCHARACTERSET=utf8mb4
COLLATE=utf8mb4_unicode_ci;
Depende el sistema operativo sobre el que estés trabajando, sobre Linux o Windows, desde la terminal de Windows el comando para crear la tabla en mysql sería:
En línea:1Carácter:31+& cmd.exe/c mysql -u root -p <2-create-tables.sql+~El operador '<' está reservado para uso futuro.+CategoryInfo:ParserError:(:)[],ParentContainsErrorRecordExcepti on
+FullyQualifiedErrorId:RedirectionNotSupported
Sabes cómo lo puedo solucionar? Tengo una laptop windows y estoy usando la terminal de vscode.
a mi no me cargaba el archivo como lo decia el profesor por tal razon me toco hacerlo de otra manera persona lo necesita
mysql -u "retaxmaster" -p (entramos al mariadb)| use metro_cdmx;(entramos a la base de datos| source 2-create-tables.sql(cargamos el archivo) | SHOW TABLES (para comprobar)
para los que utiliza vscode en windows, y tienen proble de crear las tablas por que sale este error:
The '<' operator is reserved for future use.
yo segui los siguientes pasos:
1.logiar: mysql -u miusuario -p
2.USE database_name;
3. SOURCE subdirectorio/2-CREATE-TABLES.sql;
Asegúrse de cambiar "subdirectorio" al nombre real del subdirectorio en el que se encuentra el archivo SQL en su equipo, como por ejemplo : " C:/Users/Usuario/Documents/2-CREATE-TABLES.sql "
buenas tardes a alguien le salio este errorERROR 1072 (42000): Key column 'id' doesn't exist in table
y alla encontrado solucion gracias
--Crear las tablas
USE metro_cdmx;CREATETABLEIFNOTEXISTS`lines`(`id`BIGINT(20)UNSIGNEDNOTNULLAUTO_INCREMENT,`name`VARCHAR(10)NOTNULL,`color`VARCHAR(15)NOTNULL,`created_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,`updated_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(id))DEFAULTCHARSET= utf8mb4
COLLATE=utf8mb4_unicode_ci;CREATETABLEIFNOTEXISTS`stations`(`id`BIGINT(20)UNSIGNEDNOTNULLAUTO_INCREMENT,`name`VARCHAR(10)NOTNULL,`created_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,`updated_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(id))DEFAULTCHARSET= utf8mb4
COLLATE=utf8mb4_unicode_ci;CREATETABLEIFNOTEXISTS`trains`(`serial_number`VARCHAR(10)NOTNULL,`line_id`BIGINT(20)UNSIGNEDNOTNULL,`type`TINYINT(4)NOTNULL,`year`INT(4)NOTNULL,`created_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,`updated_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(serial_number))DEFAULTCHARSET= utf8mb4
COLLATE=utf8mb4_unicode_ci;
En la terminal de Windows hay que usar el siguiente comando
Get-Content2-create-tables.sql| mysql -u root -p
--Crear las tablas
USE metro;--==========================================================================--Lines--==========================================================================CREATETABLEIFNOTEXISTS`lines`(`id`BIGINT(20)UNSIGNEDNOTNULLAUTO_INCREMENT,`name`VARCHAR(10)NOTNULL,`color`VARCHAR(15)NOTNULL,`created_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,`updated_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(id))ENGINE=INNODBDEFAULTCHARSET=utf8mb4
COLLATE=utf8mb4_unicode_ci;--==========================================================================--Stations--==========================================================================CREATETABLEIFNOTEXISTS`stations`(`id`BIGINT(20)UNSIGNEDNOTNULLAUTO_INCREMENT,`name`VARCHAR(10)NOTNULL,`created_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,`updated_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(id))ENGINE=INNODBDEFAULTCHARSET=utf8mb4
COLLATE=utf8mb4_unicode_ci;--==========================================================================--Trains--==========================================================================CREATETABLEIFNOTEXISTS`trains`(`serial_number`VARCHAR(10)NOTNULL,`line_id`BIGINT(20)UNSIGNEDNOTNULL,`type`TINYINT(4)UNSIGNEDNOTNULL,`year`INT(4)UNSIGNEDNOTNULL,`created_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,`updated_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(serial_number),CONSTRAINTFK_trains_linesFOREIGNKEY(line_id)REFERENCES`lines`(`id`))ENGINE=INNODBDEFAULTCHARSET=utf8mb4
COLLATE=utf8mb4_unicode_ci;--==========================================================================--Lines_stations--==========================================================================CREATETABLEIFNOTEXISTS`lines_stations`(`id`BIGINT(20)UNSIGNEDNOTNULLAUTO_INCREMENT,`line_id`BIGINT(20)UNSIGNEDNOTNULL,`station_id`BIGINT(20)UNSIGNEDNOTNULL,`created_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,`updated_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(id),CONSTRAINTFK_lines_stations_linesFOREIGNKEY(line_id)REFERENCES`lines`(`id`),CONSTRAINTFK_lines_stations_stationsFOREIGNKEY(station_id)REFERENCES`stations`(`id`))ENGINE=INNODBDEFAULTCHARSET=utf8mb4
COLLATE=utf8mb4_unicode_ci;--==========================================================================--Locations--==========================================================================CREATETABLEIFNOTEXISTS`locations`(`id`BIGINT(20)UNSIGNEDNOTNULLAUTO_INCREMENT,`station_id`BIGINT(20)UNSIGNEDNOTNULL,`location`POINTNOTNULL,`created_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,`updated_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(id),CONSTRAINTFK_locations_stationsFOREIGNKEY(station_id)REFERENCES`stations`(`id`))ENGINE=INNODBDEFAULTCHARSET=utf8mb4
COLLATE=utf8mb4_unicode_ci;--==========================================================================--Drivers--==========================================================================CREATETABLEIFNOTEXISTS`drivers`(`id`BIGINT(20)UNSIGNEDNOTNULLAUTO_INCREMENT,`name`VARCHAR(10)NOTNULL,`status`BOOLEANDEFAULTfalse,`created_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,`updated_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(id))ENGINE=INNODBDEFAULTCHARSET=utf8mb4
COLLATE=utf8mb4_unicode_ci;--==========================================================================--ActiveDrivers--==========================================================================CREATETABLEIFNOTEXISTS`active_drivers`(`id`BIGINT(20)UNSIGNEDNOTNULLAUTO_INCREMENT,`driver_id`BIGINT(20)UNSIGNEDNOTNULL,`status`BOOLEANDEFAULTfalse,`created_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,`updated_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(id),CONSTRAINTFK_active_drivers_driversFOREIGNKEY(driver_id)REFERENCES`drivers`(`id`))ENGINE=INNODBDEFAULTCHARSET=utf8mb4
COLLATE=utf8mb4_unicode_ci;
Para los que no pueden ejecutar el código en la terminal usando "<" Yo lo que hice fue copiar y pegar el código tal como lo hicimos para crear la database, pero en este caso para lines con todo el código. Más sencillo porque no encontré solución.