CSV & Foreign key

  • Författare
  • Meddelande

ylvalajn

troubleshooter

  • Inlägg: 215
  • Blev medlem: 11 feb 2013, 13:52

CSV & Foreign key

Inlägg14 maj 2019, 14:27

Hej !


Jag kör en insert.sql fil via mysql och läser in flera csv filer .
För att få foreign key att fungera så stänger jag av 'checks för foreign keys'...

Kod: Markera allt
-- The categories
set foreign_key_checks = 0;
LOAD DATA LOCAL INFILE 'csv/categories.csv'
INTO TABLE kategori
CHARSET utf8
FIELDS
    TERMINATED BY ','
    ENCLOSED BY '"'
LINES
    TERMINATED BY '\n'
IGNORE 1 LINES
;
SET foreign_key_checks = 1;

SELECT * FROM kategori;


Det fungerar, men är det ok? Finns det ngt bättre sätt?

Annars får jag felet att

Kod: Markera allt
Cannot delete or update a parent row: a foreign key constraint fail
Användarvisningsbild

mos

dbwebb

  • Inlägg: 10922
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: CSV & Foreign key

Inlägg15 maj 2019, 15:21

Du kan fylla på tabellerna i rätt ordning så bör du inte få felet.

Om du har tabell produkt så lägger du in dem först, sedan lägger du till tabell kategori där du kopplar vilken produkt som har vilken kategori.

Produkten måste finnas, innan du kan koppla den till en kategori.

Ditt felmeddelande säger "du länkar (FK) till en produkt som inte finns".
...
..:
.... /mos

ylvalajn

troubleshooter

  • Inlägg: 215
  • Blev medlem: 11 feb 2013, 13:52

Re: CSV & Foreign key

Inlägg22 maj 2019, 06:05

Jo, precis...
fast jag lägger i rätt ordning .
Och får ändå felet .

Här är den fungerande koden :

Kod: Markera allt
-- The jewels
LOAD DATA LOCAL INFILE 'csv/jewels.csv'
INTO TABLE smycke
CHARSET utf8
FIELDS
    TERMINATED BY ','
    ENCLOSED BY '"'
LINES
    TERMINATED BY '\n'
IGNORE 1 LINES
;

SELECT * FROM smycke;


-- The categories
set foreign_key_checks = 0;
LOAD DATA LOCAL INFILE 'csv/categories.csv'
INTO TABLE kategori
CHARSET utf8
FIELDS
    TERMINATED BY ','
    ENCLOSED BY '"'
LINES
    TERMINATED BY '\n'
IGNORE 1 LINES
;
SET foreign_key_checks = 1;

SELECT * FROM kategori;
Användarvisningsbild

mos

dbwebb

  • Inlägg: 10922
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: CSV & Foreign key

Inlägg22 maj 2019, 08:28

Jag brukar inte stänga av foreign key checken.

Vi har facit om du visar utskriften från "SELECT * FROM smycke" samt innehållet i "categories.csv".

Kör först LOAD DATA till smycke och gör en SELECT, visa resutlatet.

Kör sedan LOAD DATA till kategori, visa resultat från SELECT och felmeddelandet.

Dubbelkolla att alla csv-filerna är radbrytning NL.
...
..:
.... /mos

ylvalajn

troubleshooter

  • Inlägg: 215
  • Blev medlem: 11 feb 2013, 13:52

Re: CSV & Foreign key

Inlägg22 maj 2019, 11:31

Hmmm ....

Nu när jag gjorde om databas-loading så fungerade det fint hehe.
Jag minns inte vad jag gjorde då, men testade ett par gånger.

Iaf, nu fungerar det, och behöver inte stänga av foreign key nej :)

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 9 gäster