![]() |
|
Модераторы: skyboy |
![]()
|
|
| NumLock |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 30.7.2006 Где: Иркутск Репутация: нет Всего: нет |
Занимался конвертированием базы с изменением структуры. Избрал следующий алгоритм: создается аналогичная исходной таблица в базе MySQL в которой все поля типа TEXT, и одно AUTO_INCREMENT поле ID. Перегоняем туда данные из заранее приготовленного CSV. Затем SQL-манипуляциями приводим таблицу к человеческому виду и делаем на ней ALTER TABLE, чтобы поля имели нужные типы.
Проблема в следующем: в таблице есть индексное поле, ссылающееся на таблицу справочник. Раньше индексом был некоторый строковый код, сейчас, я хочу индексировать по-человечески через ID. Грубо говоря, у меня в таблице есть поле Zavod, и есть таблица-справочник, в котором лежат названия заводов и их коды. Но некоторым кодам в основной таблице нет соответствующих записей в таблице справочнике. Я выполняю запрос:
Все хорошо, но теперь некоторые поля в главной таблице имеют значение NULL. Выхожу из этой ситуации так:
Где newEmptyID - значение записи в таблице справочнике, соответствующее пустому коду. И вроде все хорошо, только после выполнения второго запроса в таблице все ещё есть записи у которых поле Zavod = NULL. Что там лежит? Пробовал во втором запросе вместо NULL использовать '', не помогает. P.S. Сорри, что так длинно, не смог изложить свои мысли короче. |
||||
|
|||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
NULL не сравнивается. насколько я помню, даже NULL = NULL вернет false. для проверки на NULLевость надо использовать конструкцию "is NULL"
|
|||
|
||||
| NumLock |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 30.7.2006 Где: Иркутск Репутация: нет Всего: нет |
Уже решил проблему другим способом, а за поводу NULL, спасибо, буду знать.
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |