Внешний ключ не сохраняет значение первичного ключа родительской таблицы при использовании MySQL и Django
Я работаю над проектом, используя Django и MySQL, и я застрял в ситуации, когда я хочу сохранить значение первичного ключа родительской таблицы во внешнем ключе дочерней таблицы, и эта функциональность не работает хорошо, поскольку она всегда сохраняет значение NULL. У меня есть две таблицы, первая - пользователи, вторая - журналы. Вот детали моих таблиц:
CREATE TABLE user (
id int NOT NULL primary key AUTO_INCREMENT,
username varchar(255),
email varchar(255),
password varchar(255),
);
CREATE TABLE logs (
id int NOT NULL primary key AUTO_INCREMENT,
notifications varchar(255),
FOREIGN KEY (user_id) int NULL REFERENCES user(id), on_delete = CASCADE, on_delete = UPDATE
);
Я использовал запрос для установки значения первичного ключа родительской таблицы в NULL, чтобы создать связь между родительской и дочерней таблицами:
"SELECT logs.user_id from logs LEFT JOIN user on user.id = logs.user_id WHERE user.id is NULL"
После создания отношения, когда я вставляю данные в родительскую таблицу, значение внешнего ключа дочерней таблицы сохраняет NULL и не сохраняет значение первичного ключа родительской таблицы:
"INSERT INTO user(id, username, email, password) VALUES("abc", "abc@gmail.com", "*****")"
после запроса INSERT таблица пользователей выглядит так:
id username email password
1 abc abc@gmail.com *****
` Но, когда я INSERT журналы в дочерней таблице logs, он дает значение NULL в столбце внешнего ключа, который называется user_id:
"INSERT INTO logs(id, notifications) VALUES("stackoverflow is great")"
Журналы таблицы выглядят следующим образом:
id logs user_id
1 stackoverflow is great NULL
Как вы можете видеть, в моей таблице журналов значение user_id всегда NULL, даже если данные вставлены в родительскую таблицу "user", и обе таблицы имеют родительские и дочерние отношения.
В Django я создал обе таблицы в файле models.py:
models.py:
from django.db import models
class Newuser(models.Model):
id = models.BigIntegerField(primary_key=True)
username = models.CharField(max_length=150)
email = models.CharField(max_length=150)
password = models.CharField(max_length=150)
class Meta:
db_table = "user"
class hash(models.Model):
id = models.BigIntegerField
logs = models.CharField(max_length=255)
user = models.ForeignKey(Newuser, on_delete=models.CASCADE, blank=True, null=True, related_name="logs_userid")`
class Meta:
db_table = "logs"
Kindly get me out of this situation.
I have tried to create a relation between parent and child table just to parse parent table primary key value in child table foreign key column but I didn't succeed yet.