2010-09-16 9 views
0

Disons que je Hava une tableMysql insert avec clé étrangère se référant à id primaire

objet:

id, primary key auto-increment 
obj_id, foreign key (object.id) 
val, integer 

Est-il possible d'insérer un enregistrement avec obj_id = id. Ne pas avoir d'erreur avec une contrainte de clé étrangère?

Insérer en objet les valeurs (val) (123)

Répondre

-1

Oui, c'est tout à fait correct.

+0

Non, cela ne fonctionne pas obj_id n'est pas nul. Je veux avoir id set automatiquement (auto-incement) et obj_id = id dans un insert. – liysd

0

Si obj_id permet null alors c'est ok.

EDIT:

Qu'est-ce que vous essayez d'atteindre? Vous avez dit que c'est une clé étrangère, alors ce devrait être la valeur de cette table. Si vous souhaitez qu'une autre colonne ait les mêmes données que votre valeur PK, cette colonne ne doit pas être la clé étrangère et vous devez écrire trigger pour mettre à jour cette colonne ou une autre approche.

+0

Si je sais id je peux écrire "Insérer dans l'onglet (10,10,123)" et c'est ok. Je veux maintenant que id soit la valeur d'auto-incerement et obj_id pour le pointer. – liysd