Csv fájl MySQL-be importálásakor a null értékek miért numerikusan 0 értékeként tárolódnak?
Maga a CSV még helyes? (Két pontosvessző között semmi.)
A tábla szerkezetében is engedélyezni kell a nullt, meg az importálási beállításoknál is.
SHOW CREATE TABLE táblaneve
és a kimenetét oszd meg velünk. szerintem nincs engedélyezve a null érték az adott mezőre
Ez szerintem by design.
Numerikus értéknél ugyanis van a 0, ami egy konkrét érték, ha nincs semmi a csv-ben, akkor NULL lesz, mert az semmilyen érték.
De karakterláncból az üres karakterlánc is egy érték, ami nem NULL.
CREATE TABLE `tag` (
`id` int NOT NULL,
`nev` varchar(255) CHARACTER SET utf8 COLLATE utf8_lithuanian_ci NOT NULL,
`nem` varchar(10) CHARACTER SET utf8 COLLATE utf8_hungarian_ci NOT NULL,
`szuletett` int DEFAULT NULL,
`elhunyt` int DEFAULT NULL,
`identitas` varchar(255) CHARACTER SET utf8 COLLATE utf8_hungarian_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci
Esetleg lehet az gond, hogy egy txt fájt írtam át csv-re?
Tabulátorokkal van tagolva egyébként ( \t )
Embör, hát kiszúrja a szemed!
Az int mezőknél: DEFAULT NULL, magyarán ha nincs megadva érték, akkor NULL lesz.
A karakteres mezőknél meg NOT NULL, azaz ha nincs megadva érték, akkor üres karakterlánc lesz NULL helyett.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!