Внешний ключ не сохраняет значение первичного ключа родительской таблицы при использовании 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. 

Вернуться на верх