Ограничение внешнего ключа ошибки SQL - PullRequest
0 голосов
/ 28 июня 2011

Я борюсь в течение четырех дней с ошибкой ограничения внешнего ключа sql, и я действительно понятия не имею, почему. Я прочитал все, что мог об этом предмете, и кажется, что все в порядке.

Вот моя схема.имл

Soiree:
  actAs: { Timestampable: ~ }
  columns:
  titre:        { type: string(255), notnull: true }
  description:  { type: blob(), notnull: true }
  adresse: { type: string(255), notnull: true, unique: true }
  code_postal: {type: integer, notnull: true }
  ville: {type: string(255), notnull:true}
  date: {type: timestamp, notnull: true }
  type_id: {type: integer, notnull: true }
  flyer: {type: string(255), notnull:true }
  is_visible: { type: boolean, notnull:true, default:0 }
  user_id: {type:integer, notnull: true}
relations:
  sfGuardUser: {onDelete: CASCADE, local: user_id, foreign: id, foreignAlias: Users} 
  Type: {onDelete: CASCADE, local: type_id, foreign: id, alias: Types, class: Type, refClass: Soiree}  

Type:
  columns:
    titre: {type: string(255), notnull: true}

Invitation:
  actAs: { Timestampable: ~ }
  columns:
    titre:        { type: string(255), notnull: true }
    description:  { type: blob(), notnull: true }
    image:      { type: string(255), notnull: true }
    is_sent: {type: boolean, notnull:true, default:0}
    adresse:         { type: string(255) }
    code_postal:          { type: string(255) }
    code_QR: {type: string(255), notnull: true }
    invites_id: {type:integer }
    user_id: {type:integer, notnull: true}
    groupe_invites_id : {type:integer, notnull: true }
    soiree_id: {type:integer, notnull:true}
  relations:
    Invites: { onDelete: CASCADE, local: invites_id, foreign: id, alias: invite, class: Invites, refClass: Invitation } 
    Groupe_invites: { onDelete: CASCADE, local: groupe_invites_id, foreign: id, alias: invit_groupes, class: Groupe_invites, refClass: Invitation } 
    sfGuardUser: {onDelete: CASCADE, local: user_id, foreign: id, foreignAlias: Users} 
    Soiree: { onDelete: CASCADE, local: soiree_id, foreign: id, alias :Soirees, class: Soiree, refClass: Invitation } 



Groupe_invites:
  actAs: { Timestampable: ~ }
  columns:
    titre:       { type: string(255), notnull: true }
    description:     { type: string(255), notnull: true, unique: true }
    invites_id:     { type: integer, notnull: true }
    soiree_id: { type: integer }
    user_id: {type:integer, notnull: true}
  relations:
    Invites:
      onDelete: CASCADE
      local: invites_id
      foreign: id
      alias: invites
      class: Invites
      refClass: Groupe_invites
    sfGuardUser: {onDelete: CASCADE, local: user_id, foreign: id, foreignAlias: Users} 
    Soiree: { onDelete: CASCADE, local: soiree_id, foreign: id, alias: Soiree, class: Soiree, refClass: Groupe_invites } 

Invites:
  columns:
    nom:  { type: string(255), notnull: true }
    prenom: { type: string(255), notnull: true }
    age: {type: integer, notnull : true }
    email: {type: string(255), notnull: true, unique: true }
    adresse: {type: blob(), notnull: true }
    telephone: {type: integer(255), notnull: true }
    soiree_id: {type: integer, notnull: true }
    user_id: {type:integer, notnull: true}
  relations:
    sfGuardUser: {onDelete: CASCADE, local: user_id, foreign: id, foreignAlias: Users} 
    Soiree: { onDelete: CASCADE, local: soiree_id, foreign: id, alias: Soiree_invite, class: Soiree, refClass: Invites } 

Organisateur:
   actAs: {Timestampable: ~ }
   columns:
    nom: {type: string(255), notnull: true }
    prenom: {type: string(255), notnull: true }
    age: {type: integer, notnull: true }
    description: {type: blob(), notnull: true }
    photo: {type: string(255), notnull: true }
    user_id: {type:integer, notnull: true}
  relations:
    sfGuardUser: {onDelete: CASCADE, local: user_id, foreign: id, foreignAlias: Users} 


Image:
columns:
    titre: {type: string(255), notnull: true }
    description: {type: string(255), notnull: true }
    lien: {type: string(255)}
    album_id: {type: integer}
    user_id: {type: integer}
relations:
    Album: {onDelete: CASCADE, local: album_id, foreign: id, alias: Albums, class:Album, refClass:Image}
    sfGuardUser: {onDelete: CASCADE, local: user_id, foreign: id} 


Album:
columns:
    titre: {type: string(255), notnull: true }
    description: {type: blob(), notnull: true }
    user_id: {type:integer, notnull: true}
relations:
    sfGuardUser: {onDelete: CASCADE, local: user_id, foreign: id} 

А у меня ошибка типа:

SQLSTATE [23000]: нарушение ограничения целостности: 1452 Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполнено (soiree. invitation, CONSTRAINT invitation_ibfk_1 FOREIGN KEY (invites_id) ССЫЛКИ invitation (id) НА УДАЛЕННОМ КАСКАДЕ)

Мне действительно нужна помощь, спасибо!

1 Ответ

0 голосов
/ 28 июня 2011

Я обычно добавляю столбец id в свои таблицы.Примените это к таблицам, где это имеет смысл:

id: {тип: целое число, первичное: истина, автоинкремент: истина}

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