|
|
|
Заполяение талицы из текстового файла
|
|||
|---|---|---|---|
|
#18+
Я пытаюсь заполнить таблицу из текстового файла(LOAD DATA INFILE "tab1.txt" INTO TABLE tab1;). Один из стобцов таблицы является датой (тип DATA : гггг-мм-дд ). Я его в текстовом файле заполняю. например следующим образом: 2002-08-25 NULL \N При просмотре таблицы ( SELECT * FROM tab1;) соответствующий столбец выглядит: ----+--------------+--- | УВОЛЕН | ----+--------------+--- | 2002-08-25 | | 0000-00-00 | | 0000-00-00 | хотя , как учат нас руководства по MySQL, должен иметь вид : ----+--------------+--- | УВОЛЕН | ----+--------------+--- | 2002-08-25 | | NULL | | NULL Как нужно правильно либо заполнить текстовый файл, либо написать команду LOAD DATA .... ? Из-за неправиьного заполнения я не могу выполнить команду SELECT ... WHERE УВОЛЕН="NULL"; WINDOWS XP, mysql-4.0.18-win ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 14:47 |
|
||
|
Заполяение талицы из текстового файла
|
|||
|---|---|---|---|
|
#18+
where чегототам=NULL ? Так нельзя писать. Сравнение с NULL недопустимо. Можно только where чегототам is null Или это у вас строка такая? "NULL" Тогда тем более непонятно что должно получиться. И откуда там могут появиться строковые значения "NULL" почему бы вам не делать where uvolen='0000-00-00' ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 14:56 |
|
||
|
Заполяение талицы из текстового файла
|
|||
|---|---|---|---|
|
#18+
Попробуй указать lines terminated: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 15:37 |
|
||
|
Заполяение талицы из текстового файла
|
|||
|---|---|---|---|
|
#18+
Ты часом не через ODBC работаешь? А то у него есть такая особенность: конвертить NULL в 'ноль', т.е. в твоем случае в '0000-00-00'. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 02:15 |
|
||
|
Заполяение талицы из текстового файла
|
|||
|---|---|---|---|
|
#18+
Я немного разобрался, как нужно вносит данные в текстовый файл, чтобы ини были правильно перенесены в таблицу командой LOAD DATA INFILE "textdata.txt" INTO TABLE tab1; 1. Для выполнения этой команды необходимо, чтобы текстовый файл textdata.txt находился в каталоге базы dB1, которой принадлежит заполняемая таблица tab1 ( ....\mysql\data\db1\textdata.txt ) 2. Вносим в файл первое данное и нажимем кнопку табуляции, второе данное -- кнопка табуляции и т. д. ( знаки табуляции и перевода каретки являются по умолчанию в приведенной выше форме команды LOAD... соответственно разделителями данных в записи и записей между собой ). На что нужно обратить внимание -- это последнее данное в записи нужно обязательно закрыть табуляцией , и только после этого сделать переход (ENTER) на новую строку (Я не знал, что нужно так делать, и из-зо чего возник мой вопрос). Тогда код \N, стоящий последним в записи, будет провильно преобразовываться в NULL ( а не в 0000-00-00). И вообще, если не закрыть последнее поле табуляцией перед переходом на новую строку, таблица будет заполняться неправильно. 3. У меня значение вписанное в текстовый файл значение \N вносится в таблицу как и положено --NULL. а вот если вписать в текстовый файл NULL ( что тоже разрешено мануалом), он вноситься не как NULL. Причину я не знаю. Всем, кто откликнулся -- спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2004, 12:39 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=47&tid=1854752]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
153ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 459ms |

| 0 / 0 |
