Я пытаюсь установить значение NULL
в столбце deserved_slope_2
, когда пользователь редактирует значение в форме. К сожалению, этот столбец является внешним ключом, который ссылается на первичный ключ (индекс автоматического инкремента) столбца другой таблицы.Mysql Set Значение NULL в столбце внешнего ключа
При выполнении запроса я получаю:
Error Number: 1452
Cannot add or update a child row: a foreign key constraint fails (`game_skisimulation`.`game_created_lifts`, CONSTRAINT `fk_game_created_lifts_game_created_slopes2` FOREIGN KEY (`deserved_slope_2`) REFERENCES `game_created_slopes` (`id_created_slopes`) ON DE)
UPDATE game_created_lifts SET deserved_slope_2 = '0' WHERE id_created_lifts = '200' LIMIT 1
Я читал, что это происходит потому, что NULL ID не существует в упомянутой таблице. К сожалению, кажется, что я не могу установить NULL в этой колонке:
Столбец первичного ключа не может содержать значения NULL.
Как я могу решить эту проблему? Я хочу установить NULL в столбце deserved_slope_2
(для его сброса).
- Структура таблицы для таблицы game_created_lifts
CREATE TABLE `game_created_lifts` (
`id_created_lifts` int(11) NOT NULL,
`id_player` int(11) NOT NULL,
`deserved_slope_1` int(11) DEFAULT NULL,
`deserved_slope_2` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- RELATIONS FOR TABLE `game_created_lifts`:
-- `deserved_slope_1`
-- `game_created_slopes` -> `id_created_slopes`
-- `deserved_slope_2`
-- `game_created_slopes` -> `id_created_slopes`
- Структура таблицы для таблицы game_created_slopes
CREATE TABLE `game_created_slopes` (
`id_created_slopes` int(11) NOT NULL,
`id_player` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Первичный ключ не может содержать 'NULL', но внешний ключ может. Вам просто нужно объявить столбец 'deserved_slope_1'' NULL' в 'CREATE TABLE'. – Barmar
Если это обновление в первом блоке является тем, которое вы пытаетесь выполнить 'deserved_slope_2 = '0'', не является попыткой установить поле в' NULL'; это попытка установить его на '0', что не то же самое. – Uueerdo