Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Załaduj dane z CSV wewnątrz pola bitowego w mysql

W końcu znalazłem rozwiązanie i zamieszczam je tutaj na przyszłość. Znalazłem pomoc na stronie podręcznika ładowania danych mysql .

Tak więc do celów testowych moja struktura tabeli to:

+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| nome   | varchar(45) | YES  |     | NULL    |       |
| valore | bit(1)      | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+

Mój csv plik testowy to:

1,primo_valore,1
2,secondo_valore,0
3,terzo_valore,1

Zapytanie do załadowania pliku csv w tabeli jest:

 load data infile 'test.csv' into table test
    fields terminated by ',' lines terminated by '\n'
    (id, nome, @valore) set
       valore=cast(@valore as signed);
    show warnings;

Jak widać, załaduj csv musisz wykonać rzut cast(@valore as signed) i w swoim csv możesz użyć notacji całkowitej 1 lub 0 aby wskazać bit wartość. Dzieje się tak, ponieważ wartości BIT nie można załadować za pomocą notacji binarnej (na przykład b'011010' ).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Grupa SQL według i min (MySQL)

  2. Przekroczono limit czasu oczekiwania blokady; spróbuj zrestartować transakcję dla „zablokowanej tabeli Mysql?

  3. Jak sprawnie znaleźć najbliższe lokalizacje w pobliżu danej lokalizacji?

  4. Nie można połączyć się z serwerem MySQL na „localhost” (10061)

  5. Użyj group by in i zwróć tożsamość wiersza