加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Symfony插入SQL错误 – 外键约束失败

发布时间:2020-12-13 22:31:16 所属栏目:PHP教程 来源:网络整理
导读:我正在使用fixture来为我的symfony项目生成数据,但由于某种原因,以下错误不断被抛出: Unable to execute INSERT statement. [wrapped: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint
我正在使用fixture来为我的symfony项目生成数据,但由于某种原因,以下错误不断被抛出:

Unable to execute INSERT statement. [wrapped: SQLSTATE[23000]:
Integrity constraint violation: 1452 Cannot add or update a child row:
a foreign key constraint fails (meeting.meeting_attendance,
CONSTRAINT meeting_attendance_FK_1 FOREIGN KEY (meeting_id)
REFERENCES meeting_meetings (id))]

我正在寻找错误发生的原因,我正在使用Symfony 1.4,带有propel和MySQL数据库.

会议架构和考勤架构如下,完整副本在http://pastebin.com/HZhaqWSN

meeting_meetings:
    id: ~
    owner_id: { type: integer,foreignTable: sf_guard_user_profile,foreignReference: user_id,required: true }
    group_id: { type: integer,foreignTable: meeting_groups,foreignReference: id }
    name: { type: varchar,required: true,default: Meeting } 
    completed: { type: boolean,default: 0 } 
    location: { type: varchar,default: Unknown }
    start: { type: integer,required: true }
    length: { type: integer,default: 60 }
    created_at: ~
    updated_at: ~

  meeting_attendance:
    id: ~
    meeting_id: { type: integer,foreignTable: meeting_meetings,foreignReference: id,required: true }
    user_id: { type: integer,required: true }
    invited: { type: boolean,default: 0 }
    attending: { type: boolean,default: 0 }
    apolgies: { type: boolean,default: 0 }
    attended: { type: boolean,default: 0 }
    apolgies_comment: { type: varchar(255) }

03_meetings.yml如下

MeetingMeetings:
  PezMeeting:
    owner_id: Pezmc
    completed: 0
    location: Awesome Room
    start: 1310059022
    length: 60

和09_attendance.yml如下:

MeetingAttendance:
  MeetingAttendance1:
    meeting_id: PezMeeting
    user_id: Pezmc
    invited: 1
    attending: 1
    apolgies: 0
    attended: 0
    apolgies_comment: None

我的两个装置都使用PHP随机生成,但我已经将它们更改为上面的尝试找到此错误!

我认为我一定忽略了一些简单的事情,但我一直试图调试这个超过一个小时,我的智慧结束了!

有谁知道导致此错误的原因或解决方法?

非常感谢你的时间,

编辑:有人建议将所有内容放在一个文件中,我已经完成了这个并使用php运行该文件(以确切了解推进的内容).它仍然会得到同样的错误:

MeetingMeetings:
  PezMeeting:
    owner_id: Pezmc
    completed: 0
    location: Awesome Room
    start: 1310059022
    length: 60

MeetingItems:
  Item1:
    Value: VfH0qXxGV4Ylb ZtRm DKkDE9dTzlWR z Nm TnNhxVPvZO eOn IM5 v ETOl v 4 xsA7HexNwzB YDvz I uay Sjm3rbAu iaiZIPGv l0oNSFCG To

MeetingAgendas:
  Agenda1:
    MeetingId: PezMeeting
    ItemId: Item1

MeetingActions:
  Action1:
    ItemId: Item1
    MeetingId: PezMeeting
    Due: 1310705295
    Start: 1310358321
    Completed: 1

MeetingAttendance:
  MeetingAttendance1:
    meeting_id: PezMeeting
    user_id: Pezmc
    invited: 1
    attending: 1
    apolgies: 0
    attended: 0

仍然得到:

Unable to execute INSERT statement. [wrapped: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`meeting`.`meeting_agendas`,CONSTRAINT `meeting_agendas_FK_1` FOREIGN KEY (`meeting_id`) REFERENCES `meeting_meetings` (`id`))]

编辑2:表的生成SQL在这里:http://pastebin.com/XQmM3k7S(下面的一些表)DROP TABLE IF EXISTS meeting_meetings;

CREATE TABLE `meeting_meetings`
(
    `id` INTEGER  NOT NULL AUTO_INCREMENT,`owner_id` INTEGER  NOT NULL,`group_id` INTEGER,`name` VARCHAR(255) default 'Meeting' NOT NULL,`completed` TINYINT default 0 NOT NULL,`location` VARCHAR(255) default 'Unknown' NOT NULL,`start` INTEGER  NOT NULL,`length` INTEGER default 60 NOT NULL,`created_at` DATETIME,`updated_at` DATETIME,PRIMARY KEY (`id`),INDEX `meeting_meetings_FI_1` (`owner_id`),CONSTRAINT `meeting_meetings_FK_1`
        FOREIGN KEY (`owner_id`)
        REFERENCES `sf_guard_user_profile` (`user_id`),INDEX `meeting_meetings_FI_2` (`group_id`),CONSTRAINT `meeting_meetings_FK_2`
        FOREIGN KEY (`group_id`)
        REFERENCES `meeting_groups` (`id`)
)Type=InnoDB;

解决方法

此灯具必须位于同一文件中.我的意思是来自03_meetings.yml和09_attendance.yml的灯具

我希望这会有用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读