powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Не срабатывает INSERT из-за внешнего ключа равного NULL
3 сообщений из 3, страница 1 из 1
Не срабатывает INSERT из-за внешнего ключа равного NULL
    #40013247
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
В интернете прочитал, что внешний ключ может равнятmся NULL.
Описал следующие сущности:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create table Data_user(
                          Id_data_user BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
                          Telefone VARCHAR(12)
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

create table Users(
                      Id_Users BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
                      Login VARCHAR(50) NOT NULL,
                      Password VARCHAR(1000) NOT NULL,
                      Data_user_id BIGINT default null,
                      CONSTRAINT FK_Users_Data_user FOREIGN KEY (Data_user_id) REFERENCES Data_user (Id_data_user)
                      ON delete set null on update restrict
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;



При попытке записать в авторUsers выдает ошибку, что автор Data_user не установлено значение по умолчанию, хотя этот объект вообще не создается, а на место FOREIGN KEY прописывается по умолчанию NULL:

авторError Code: 1364. Field 'Data_user' doesn't have a default value
Код: sql
1.
2.
INSERT INTO Users (Id_Users, Login, Password, Word_coder, Status, email, First_name, Last_name, Created, Updated) VALUES (1,'vldmr','42f846961c6718e804bcdd0f04d32a9d44fa3a4a51d4983026bd8b31525af5b5',
                     'vldmr','ACTION','vldmr@gmail.com','Vladimir','S','2020.10.25','2020.10.25');



Скажите где ошибка и как можно сделать?
Нужно чтобы авторUsers содержал ссылку на автор Data_user, а не наоборот. Как наоборот сделать знаю.
Но автор Data_user нам заранее не известен и может быть описан позднее.
...
Рейтинг: 0 / 0
Не срабатывает INSERT из-за внешнего ключа равного NULL
    #40013274
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir,

А теперь покажите то же самое, но с воспроизводимым примером. Хинт: у вас не соответствует insert показанному create table. А, что очевидно если прочитать текст ошибки, одно из неуказанных в insert полей под названием Data_user не имеет значения по-умолчанию. Что используемый у вас sql_mode запрещает.
...
Рейтинг: 0 / 0
Не срабатывает INSERT из-за внешнего ключа равного NULL
    #40013420
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkij
Vlad__i__mir,

А теперь покажите то же самое, но с воспроизводимым примером. Хинт: у вас не соответствует insert показанному create table. А, что очевидно если прочитать текст ошибки, одно из неуказанных в insert полей под названием Data_user не имеет значения по-умолчанию. Что используемый у вас sql_mode запрещает.


Решил, чтобы легче читалось урезать код, а про то что ISERT нужно урезать забыл.

Нашел ошибку, вы были правы, дело не во внешнем ключе, а в другом поле. Это моя невнимательность. Спасибо!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Не срабатывает INSERT из-за внешнего ключа равного NULL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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