Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / С добавлением новых внешних ключей к заполненным таблицам просто беда / 8 сообщений из 8, страница 1 из 1
27.08.2014, 22:29:53
    #38730985
svnvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
С добавлением новых внешних ключей к заполненным таблицам просто беда
Надо создать в таблице nomenclature дополнительное поле unit_id, которое будет ссылаться на unit.id.
В таблице unit уже данные заполнены, в ней много записей. В nomenclature есть одна запись, но на нее еще ссылаются другие таблицы.
Вот когда в EMS MySQL Manager пытаюсь сделать внешний ключ, он не дает это сделать, т.к. 0 не может ссылаться на unit.id. Удалить запись из таблицы тоже нельзя, т.к. на нее ссылаются другие таблицы. Хорошо, что в nomenclature одна запись, я внучную внес unit_id = 1, исправил 0 на 1 и после этого внешний ключ создался. Но как быть, если бы было множество записей, не будешь же всем присваивать фиктивные значения?
...
Рейтинг: 0 / 0
28.08.2014, 00:40:21
    #38731035
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
С добавлением новых внешних ключей к заполненным таблицам просто беда
svnvlad0 не может ссылаться на unit.idЭто почему же?

А вообще - если у вас неконсистентные данные, то кто ж вам виноват?
...
Рейтинг: 0 / 0
28.08.2014, 10:23:40
    #38731231
svnvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
С добавлением новых внешних ключей к заполненным таблицам просто беда
miksoftsvnvlad0 не может ссылаться на unit.idЭто почему же?

А вообще - если у вас неконсистентные данные, то кто ж вам виноват?
Какие неконсистентные, там только одна запись, в которой новое поле = NULL или 0.
...
Рейтинг: 0 / 0
28.08.2014, 10:33:54
    #38731250
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
С добавлением новых внешних ключей к заполненным таблицам просто беда
svnvladКакие неконсистентные, там только одна запись, в которой новое поле = NULL или 0.такие:svnvladон не дает это сделать, т.к. 0 не может ссылаться на unit.idесли вы пытаетесь задать ид, не существующий в таблице родителей, как ещё это назвать?
...
Рейтинг: 0 / 0
28.08.2014, 11:06:21
    #38731301
svnvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
С добавлением новых внешних ключей к заполненным таблицам просто беда
tanglirsvnvladКакие неконсистентные, там только одна запись, в которой новое поле = NULL или 0.такие:svnvladон не дает это сделать, т.к. 0 не может ссылаться на unit.idесли вы пытаетесь задать ид, не существующий в таблице родителей, как ещё это назвать?

Вот я и говорю, что не может ссылаться на 0.
Вопрос в том, как расширять таблицы по ходу проектирования, постоянно натыкаешься на эти препятствия.
...
Рейтинг: 0 / 0
28.08.2014, 11:06:51
    #38731302
svnvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
С добавлением новых внешних ключей к заполненным таблицам просто беда
Даже если делаешь поле Nullable, все равно не дает.
...
Рейтинг: 0 / 0
28.08.2014, 11:11:04
    #38731309
svnvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
С добавлением новых внешних ключей к заполненным таблицам просто беда
Все, вышел из положения. Оказывается еще на этапе создания поля unit_id нужно принудительно прописывать "По умолчанию: Null".
...
Рейтинг: 0 / 0
28.08.2014, 11:14:07
    #38731314
svnvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
С добавлением новых внешних ключей к заполненным таблицам просто беда
А, нет, просто сразу при создании делать Nulls allowed.
Если же сначала сделать Not null, а потом исправить, то не сработает, т.к. полю уже присвоится 0.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / С добавлением новых внешних ключей к заполненным таблицам просто беда / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]