Я использую приборы для генерации данных для моего проекта Symfony, но по какой-то причине выдается следующее сообщение об ошибке:
Невозможно выполнить инструкцию INSERT.[wrapped: SQLSTATE [23000]: нарушение ограничения целостности: 1452 Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполнено (meeting
. meeting_attendance
, CONSTRAINT meeting_attendance_FK_1
FOREIGN KEY (meeting_id
) ССЫЛКИ 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, required: true, default: 0 }
location: { type: varchar, required: true, default: Unknown }
start: { type: integer, required: true }
length: { type: integer, required: true, default: 60 }
created_at: ~
updated_at: ~
meeting_attendance:
id: ~
meeting_id: { type: integer, foreignTable: meeting_meetings, foreignReference: id, required: true }
user_id: { type: integer, foreignTable: sf_guard_user_profile, foreignReference: user_id, required: true }
invited: { type: boolean, required: true, default: 0 }
attending: { type: boolean, required: true, default: 0 }
apolgies: { type: boolean, required: true, default: 0 }
attended: { type: boolean, required: true, 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 (чтобы точно узнать, что читает propel).Он по-прежнему получает ту же ошибку:
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 (некоторые таблицы ниже) УДАЛИТЕ СТОЛ, ЕСЛИ СУЩЕСТВУЕТ 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;