txt archivo CSV e importar los datos en la tabla de base de datos MySQL

En este artículo se resume la CentOS7 utilizar la CARGA DE DATOS <local> INFILE declaración a MySQL8.0 archivo txt método y los datos del archivo CSV de importación y errores de base de datos encontrado. Debido a que tanto el mismo método, primero introducimos la operación de importación y error txt, csv adjuntar una breve descripción del comando y dirigir la final.

Los datos en bruto

nombre propietario especies sexo nacimiento muerte
Mullido Harold gato F 02/04/1993  
Garras Gwen gato metro 1994-03-17  
Buffy Harold perro F 05/13/1989  
colmillo Benny perro metro 08/27/1990  
Bowser Diane perro metro 08/31/1979 07/29/1995
Alegre Gwen pájaro F 09/11/1998  
Whistler Gwen pájaro   1997-12-09  
Delgado Benny serpiente metro 04/29/1996  

Preparar el archivo txt

El valor nulo sustituye por N \, dentro de cada fila de datos delimitadores \ T, entre las líneas de nueva línea es \ r \ n. archivo txt luego se guardan en / var / lib / mysql-ruta archivos bajo.

Preparar tabla de datos

mysql> use testdb2;
mysql> create table tbl_pet (
    -> name varchar(10),
    -> owner varchar(10),
    -> species varchar(10),
    -> sex varchar(1),
    -> birth date,
    -> death date)CHARSET = utf8;

La importación de datos

mysql> LOAD DATA INFILE '/var/lib/mysql-files/pet.txt' INTO TABLE tbl_pet LINES TERMINATED BY '\r\n';

Resultados de importación:

mysql> select * from tbl_pet;                                             
+----------+--------+---------+------+------------+------------+
| name     | owner  | species | sex  | birth      | death      |
+----------+--------+---------+------+------------+------------+
| Fluffy   | Harold | cat     | f    | 1993-02-04 | NULL       |
| Claws    | Gwen   | cat     | m    | 1994-03-17 | NULL       |
| Buffy    | Harold | dog     | f    | 1989-05-13 | NULL       |
| Fang     | Benny  | dog     | m    | 1990-08-27 | NULL       |
| Bowser   | Diane  | dog     | m    | 1979-08-31 | 1995-07-29 |
| Chirpy   | Gwen   | bird    | f    | 1998-09-11 | NULL       |
| Whistler | Gwen   | bird    | NULL | 1997-12-09 | NULL       |
| Slim     | Benny  | snake   | m    | 1996-04-29 | NULL       |
+----------+--------+---------+------+------------+------------+
8 rows in set (0.00 sec)

Puede seguir para importar los datos en la nueva tabla será automáticamente añadida a la grabación original.

 

Resumen de error:

# Número1 : ERROR 1148 (42000): El comando que se utiliza no está permitido con esta versión de MySQL

declaración de error: MySQL> al cargar los datos del LOCAL '/var/lib/mysql/pet.txt' INFILE la tbl_pet INTO TABLE;

razón de error: más de una palabra clave LOCAL. Cuando el archivo en el lado del cliente de escritura local, cuando el servidor sin escribir. Mi base de datos MySQL y txt archivo está en la misma máquina virtual, por lo que no añada LOCAL.

 

# Número2 : ERROR 1290 (HY000): El servidor de MySQL está usando el --secure-archivo-priv opción para que no pueda ejecutar esta declaración

Error Motivo: ruta de MySQL siempre seguro-archivo-priv correspondiente al atributo, cuando el archivo de datos ha sido importada desde los otros caminos se le dará.

Solución: Compruebe segura-archivo-priv especificar la ruta y el archivo de datos en él. referencia https://blog.csdn.net/FallingU/article/details/75675220

mysql> show variables like '%secure%';
+--------------------------+-----------------------+
| Variable_name            | Value                 |
+--------------------------+-----------------------+
| secure_file_priv         | /var/lib/mysql-files/ |
+--------------------------+-----------------------+

 

# Número3 : ERROR 1292 (22007): valor de fecha incorrecta: '' para la columna de la muerte en la fila 1

razones equivocadas: el comienzo de una copia directa de los datos originales en la tabla a un archivo txt no maneja, colocan un valor vacío está vacío, no cumplen con la representación de los valores nulos de MySQL, por lo que un error.

Solución: El valor vacío \ N en vez. referencia https://dev.mysql.com/doc/refman/8.0/en/loading-tables.html

 

Número4 # : Uso CARGA DE DATOS INFILE '/var/lib/mysql-files/pet.txt' INTO TABLEdatos de importación sigue sin

Error: "para la columna de la muerte en la fila 1 valor de fecha: 'N

razón de error: terminado por el valor por defecto de los campos es '\ t', líneas que terminan por defecto es '\ n', mientras que de Windows los archivos en una nueva línea ' \ r \ el n- ', el X-Mac OS es '\ r'.

La solución: LÍNEAS add TERMINATED BY '\ r \ n', como sigue:

mysql> CARGA DE DATOS INFILE '/var/lib/mysql-files/pet.txt' en tbl_pet TABLA LÍNEAS terminados en '\ r \ n' ;

 


los datos del archivo de importación CSV

Ficheros de Datos de: fuente https://blog.csdn.net/u013378642/article/details/80952849

mysql> use testdb;

mysql> show tables;
+------------------+
| Tables_in_testdb |
+------------------+
| movie_tbl        |
+------------------+

mysql> desc movie_tbl;
+-------------+------------------+------+-----+---------+----------------+
| Field       | Type             | Null | Key | Default | Extra          |
+-------------+------------------+------+-----+---------+----------------+
| id          | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| movie_id    | int(11)          | YES  |     | NULL    |                |
| movie_name  | varchar(40)      | NO   |     | NULL    |                |
| movie_score | float unsigned   | YES  |     | NULL    |                |
| region      | varchar(16)      | YES  |     | NULL    |                |
| year        | year(4)          | YES  |     | NULL    |                |
| movie_type  | varchar(30)      | YES  |     | NULL    |                |
| director    | varchar(80)      | YES  |     | NULL    |                |
| actor       | varchar(60)      | YES  |     | NULL    |                |
+-------------+------------------+------+-----+---------+----------------+

mysql> LOAD DATA INFILE '/var/lib/mysql-files/Movies.csv' INTO TABLE movie_tbl
    -> CHARACTER SET utf8
    -> FIELDS TERMINATED BY ','
    -> LINES TERMINATED BY '\r\n'
    -> IGNORE 1 LINES
    -> (movie_id,movie_name,movie_score,region,year,movie_type,director,actor);

Información adicional:

1. CARACTERES UTF8: Debido a los datos chinos, especifique la codificación UTF-8.

2. Campos terminados en ' ': archivo csv',' separados de datos.

3. IGNORE 1 LÍNEAS: saltarse la primera fila de datos de cabecera en el archivo original. Si no se escribe, la cabecera será tratado como la importación de datos. Si desea omitir varias líneas a partir de cero, puede cambiar la parte delantera de las líneas digitales.

4. Para importar datos en el último campo, el orden de campo y ser coherente en el orden del documento original.

 

El ~ Fin

发布了37 篇原创文章 · 获赞 47 · 访问量 10万+

Supongo que te gusta

Origin blog.csdn.net/u013378642/article/details/81220809
Recomendado
Clasificación