Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Опять проблемы с FK / 22 сообщений из 22, страница 1 из 1
06.03.2014, 12:41:38
    #38580013
borisruzanov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблемы с FK
Есть две таблицы orders и clients

В clients у каждого клиента есть id

В orders у каждого заказа есть client_id, который показывает какой клиент(c каким id) оформил этот заказ

Связываю чтобы из таблицы orders(client_id) вязалась с clients(id)

Пишу так:
alter table orders
add constraint clientid_fk
foreign key (client_id)
references clients(id)

Выдает ошибку
Cannot add or update a child row: a foreign key constraint fails (`adminka`.`#sql-1f88_1cf`, CONSTRAINT `clientid_fk` FOREIGN KEY (`client_id`) REFERENCES `clients` (`id`))

Не могу понять как решить.

Буду благодарен за помощь
...
Рейтинг: 0 / 0
06.03.2014, 12:47:11
    #38580022
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблемы с FK
А соотв. индексы - существуют? А несоответствий в значениях (в т.ч. Null) нет ли?
...
Рейтинг: 0 / 0
06.03.2014, 12:50:47
    #38580030
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблемы с FK
а типы полей одинаковые вплоть до указания длины?
...
Рейтинг: 0 / 0
06.03.2014, 12:51:23
    #38580033
borisruzanov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблемы с FK
На соответствия все проверил. Везде все совпадает вроде. int(8), not null.

Что Вы имеете в виду под индексами? Как проверить их наличие?
...
Рейтинг: 0 / 0
06.03.2014, 12:53:24
    #38580037
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблемы с FK
borisruzanov,

индекс на client(id) создан?
...
Рейтинг: 0 / 0
06.03.2014, 12:54:12
    #38580042
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблемы с FK
borisruzanovКак проверить их наличие?show indexes
для кого вообще мануал писался?
...
Рейтинг: 0 / 0
06.03.2014, 13:02:16
    #38580058
borisruzanov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблемы с FK
Агресивно:)

Да есть индекс
...
Рейтинг: 0 / 0
06.03.2014, 13:02:56
    #38580061
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблемы с FK
borisruzanov,

значит, в заказах есть значения, которые не соответствуют клиентам. Ищите.
...
Рейтинг: 0 / 0
06.03.2014, 13:12:52
    #38580083
borisruzanov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблемы с FK
А в каких областях то искать?
Какие основные причины вообще могут быть?

Тип проверил int
Длину проверил 8
AI + Primary стоит в clients , вроде тут верно
...
Рейтинг: 0 / 0
06.03.2014, 13:20:02
    #38580100
bochkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблемы с FK
в результате этого запроса выпадут записи из order
которые не соответствуют справочнику,
т.е не позволяют сделать FK
Код: sql
1.
2.
3.
SELECT * FROM orders o
LEFT JOIN clients c ON o.client_id=c.id
WHERE c.id IS NULL
...
Рейтинг: 0 / 0
06.03.2014, 13:25:48
    #38580109
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблемы с FK
borisruzanov, в поле orders(client_id) есть значения, которых нет в clients(id). Так понятно?
...
Рейтинг: 0 / 0
06.03.2014, 13:25:57
    #38580110
borisruzanov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблемы с FK
Большое спасибо, классный совет.

Получил два пункта. Их нужно удалить? Он ошибку выдает при удалении.
...
Рейтинг: 0 / 0
06.03.2014, 13:26:24
    #38580111
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблемы с FK
borisruzanovОн ошибку выдает при удалениитекст ошибки в студию :)
...
Рейтинг: 0 / 0
06.03.2014, 13:34:02
    #38580126
borisruzanov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблемы с FK
SQL-запрос:

DELETE FROM `adminka`.`orders` WHERE `orders`.`id` =62

Ответ MySQL: Документация

#1451 - Cannot delete or update a parent row: a foreign key constraint fails (`adminka`.`products`, CONSTRAINT `orderid_fk` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`))
...
Рейтинг: 0 / 0
06.03.2014, 13:38:26
    #38580134
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблемы с FK
Ну что тут сказать, текст ошибки очень похож на предыдущий, но с другими таблицами. Наверное, где-то ещё какая-то связь есть, которая не даёт удалить записи
подсказка: где именно - написано прямо в тексте ошибки
...
Рейтинг: 0 / 0
06.03.2014, 13:47:00
    #38580151
borisruzanov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблемы с FK
Не, ну это то понятно.

У меня в orders еще связи есть. Но странно почему только эти два выдают проблему.
...
Рейтинг: 0 / 0
06.03.2014, 13:49:40
    #38580157
bochkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблемы с FK
Код: sql
1.
2.
3.
[SRC sql]
UPDATE orders SET client_id=NULL
WHERE client_id IN(0,6);

[/SRC]
а потом делай FK
...
Рейтинг: 0 / 0
06.03.2014, 13:50:48
    #38580159
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблемы с FK
borisruzanovУ меня в orders еще связи есть. Но странно почему только эти два выдают проблемуможет, потому что в остальных связях ордерс - потомок, а в этой - родитель?
...
Рейтинг: 0 / 0
06.03.2014, 14:01:04
    #38580173
borisruzanov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблемы с FK
Да, у меня

id - потомок
status - родитель
user_id - потомок
client_id - потомок


В одной таблице нельзя смешивать? Должно быть только по одному типу?

2bochkov выдает синтакс еррор:(
...
Рейтинг: 0 / 0
06.03.2014, 14:02:13
    #38580175
bochkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблемы с FK
borisruzanov,
Код: sql
1.
2.
UPDATE orders SET client_id=NULL
WHERE client_id IN(0,6);


?
...
Рейтинг: 0 / 0
06.03.2014, 14:13:01
    #38580189
borisruzanov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблемы с FK
Один фиг ошибку выдает:(


Ошибка
SQL-запрос:

DELETE FROM `adminka`.`orders` WHERE `orders`.`id` =72

Ответ MySQL: Документация

#1451 - Cannot delete or update a parent row: a foreign key constraint fails (`adminka`.`products`, CONSTRAINT `orderid_fk` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`))
...
Рейтинг: 0 / 0
06.03.2014, 14:24:41
    #38580208
bochkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять проблемы с FK
Да потому что на orders завязан products,
если хочешь удалить эту запись удали сперва соответствующую запись в products
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Опять проблемы с FK / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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