2013-02-18 5 views
0

У меня есть процедура импорта данных, которая принимает файлы CSV, первый столбец которой содержит набор символов, состоящий из значений ID в формате 0123, 0517, 1531 и т. Д. Обычно 4 цифры с начальным нулем на 3-значном номере.MySQL LOAD DATA удаляет ведущие нули в поле varchar

Данные загружаются в таблицу с использованием поля varchar (255), но когда я вызываю команду LOAD DATA, все импортируется без начального нуля. Здесь что-то не хватает?

db_query('CREATE TABLE feed_buildings (
    BLDGID varchar(255), 
    BLDGNAME varchar(255), 
    CITY varchar(255), 
    STATE varchar(255), 
    ZIPCODE varchar(255), 
    LLRDID varchar(255), 
    BLDGGLA varchar(255), 
    ADDRESS1 varchar(255), 
    ADDRESS2 varchar(255), 
    NMBRUNIT varchar(255), 
    MNGRID varchar(255), 
    INACTIVE varchar(255), 
    OCCGLA varchar(255))', false, false); 

В данном примере это BLDGID поле, которое теряет свои лидирующие нули, когда я запускаю следующую команду:

$loadfields = ' (BLDGID, BLDGNAME, CITY, STATE, ZIPCODE, LLRDID, @ignore, BLDGGLA, @ignore, ADDRESS1, 
    ADDRESS2, @ignore, @ignore, NMBRUNIT, MNGRID, @ignore, @ignore, @ignore, @ignore, @ignore, 
    @ignore, @ignore, @ignore, @ignore, @ignore, @ignore, @ignore, @ignore, INACTIVE, @ignore, 
    @ignore, @ignore, @ignore, @ignore, @ignore, OCCGLA)'; 

$loadquery = 'LOAD DATA LOCAL INFILE \'' . $path . '\' INTO TABLE feed_buildings . ' FIELDS TERMINATED BY \',\' ENCLOSED BY \'"\' LINES TERMINATED BY \'\r\n\' IGNORE 1 LINES'; 
db_query_unprepared($loadquery . $loadfields); 

Спасибо заранее за любую помощь!

+0

Вы уверены, что в вашем CSV-файле установлен ноль? и почему вы используете varchar255, если вы собираетесь хранить 4-значное число? –

+0

Да, я дважды проверил это. Я вижу нуль, если я открою CSV в Блокноте. И это всего лишь временная таблица, в которой я затем работаю, чтобы объединиться с моими основными таблицами, поэтому для простоты я делаю все столбцы одинаковыми. –

ответ

0

Пренебрежение - я не уверен, как это произошло в первые несколько раз, но последние несколько импортируют правильно.

Смежные вопросы