Джанго: триггер postgresql - PullRequest
1 голос
/ 29 октября 2019

Я не очень хорош, когда дело доходит до триггера. Я просто хочу, чтобы, если администратор обновил StudentsEnrollmentRecord, он вызвал SubjectSectionTeacher и сохранил в StudentsEnrolledSubject. ребята, вы можете помочь мне решить эту проблему? особенно в PostgreSQL Trigger

Это моя функция триггера в PostgreSQL,

CREATE OR REPLACE FUNCTION public.enrollmentrecord()
    RETURNS trigger
    LANGUAGE 'plpgsql'
    VOLATILE NOT LEAKPROOF
AS $BODY$BEGIN
         INSERT INTO StudentsEnrolledSubject (Students_Enrollment_Records,Subject_Section_Teacher)
         SELECT a.id AS Students_Enrollment_Records, b.ID AS Subject_Section_Teacher
         FROM StudentsEnrollmentRecords AS a INNER JOIN
         SubjectSectionTeacher AS b ON a.School_Year = b.School_Year AND a.Education_Levels = b.Education_Levels AND a.Courses = b.Courses
         AND a.Section = b.Sections
         Where  a.EducationLevel=b.Education_Levels AND a.Course=b.Courses AND a.Section=b.Sections
         AND a.Student_Users=StudentsEnrolledSubject.Students_Enrollment_Records;
END;
$BODY$;

ALTER FUNCTION public.enrollmentrecord()
    OWNER TO unidadb_admin;

И это мой Django model.py

class SubjectSectionTeacher(models.Model):
    School_Year = models.ForeignKey(SchoolYear, related_name='+', on_delete=models.CASCADE,null=True)
    Education_Levels = models.ForeignKey(EducationLevel, related_name='+', on_delete=models.CASCADE,blank=True)
    Courses= models.ForeignKey(Course, related_name='+', on_delete=models.CASCADE,null=True,blank=True)
    Sections= models.ForeignKey(Section, related_name='+', on_delete=models.CASCADE,null=True)
    Subjects= models.ForeignKey(Subject, related_name='+', on_delete=models.CASCADE,null=True)
    Employee_Users= models.ForeignKey(EmployeeUser, related_name='+', on_delete=models.CASCADE,null=True)
    Start_Date = models.DateField(null=True,blank=True)
    End_Date = models.DateField(null=True,blank=True)
    Remarks = models.TextField(max_length=500)


class StudentsEnrollmentRecord(models.Model):
    Student_Users = models.ForeignKey(StudentProfile, related_name='students', on_delete=models.CASCADE,null=True)
    School_Year = models.ForeignKey(SchoolYear, related_name='+', on_delete=models.CASCADE, null=True, blank=True)
    Courses = models.ForeignKey(Course, related_name='+', on_delete=models.CASCADE, null=True, blank=True)
    Section = models.ForeignKey(Section, related_name='+', on_delete=models.CASCADE, null=True,blank=True)
    Payment_Type = models.ForeignKey(PaymentType, related_name='+', on_delete=models.CASCADE, null=True)
    Education_Levels = models.ForeignKey(EducationLevel, related_name='+', on_delete=models.CASCADE,blank=True,null=True)
    Remarks = models.TextField(max_length=500,null=True,blank=True)

class StudentsEnrolledSubject(models.Model):
    Students_Enrollment_Records = models.ForeignKey(StudentsEnrollmentRecord, related_name='+', on_delete=models.CASCADE,null=True)
    Subject_Section_Teacher = models.ForeignKey(SubjectSectionTeacher, related_name='+', on_delete=models.CASCADE,null=True)

это ошибка, которую я получаюкогда я обновляю studentenrollmentrecord Ошибка запуска PostgreSQL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...