<?php $sql = \"LOAD DATA INFILE 'c:/apache2triad/htdocs/files/oo.txt' \"; $sql .= \"INTO TABLE open_orders FIELDS TERMINATED BY '|' \"; $sql .= \"IGNORE 1 LINES\"; ?>
tym sposobem ładuje plik do bazy. Baza natomiast nie zawiera pola 1 lp.
kiedy je dodaję:
ALTER TABLE `oo` ADD `lp_oo` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST ;
i próbuję ponownie załadować plik txt wyskakuje błąd:
Kod
1062: Duplicate entry '5' for key 1
w bazie wygląda to tak że ładuje plik a kiedy napotka na zduplikowaną wartość zatrzymuje się. Ponaddto lp zaczyna się inkrementować od 4 i wczytuje tylko 3 rekordy.
próbowałem dodać IGNORE:
<?php $sql = \"LOAD DATA INFILE 'c:/apache2triad/htdocs/files/oo.txt' IGNORE \"; ?>
ale to też nie pomogło, wczytuje tylko pięć rekordów i zatrzymuje się.
po dodaniu nazw kolumn
<?php $sql .= \"INTO TABLE oo (col1,col2,...coln) FIELDS TERMINATED BY '|' \"; ?>
wyskakuje błąd:
Kod
LINES1064: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(col1,col2
jak zrobić żeby przy ładowaniu pliku pole lp [uniq...] było ignorowane ?
czy może lepiej nadać ten atrybut jednemu z innych pól ?