Salut,
c'est peut être aussi des contraintes de clé étrangères aveec une autre
table qui serait liée

Le 22 décembre 2009 07:40, Jean-Baptiste Barth <[email protected]
> a écrit :

> Cette erreur ne dit pas :
> "Cette clé est dupliquée dans la base alors qu'elle ne devrait pas"
> Cette erreur dit :
> "Vous essayez d'insérer un enregistrement avec un ID qui est déjà présent,
> je refuse de le faire car c'est une clé primaire"
>
> Donc a priori rien à voir avec le type, il faut chercher dans ton script :
> soit tu essaies d'insérer deux fois la même ligne de ton ancienne base, soit
> la table d'arrivée n'est pas totalement vide, soit l'ID était déjà doublé
> dans ton ancienne base, soit tu t'es emmêlé les pinceaux quelque part...
>
> Bon courage!
> Cdt,
> --
> Jean-Baptiste
>
>
> Le 22 décembre 2009 05:42, Adrien Coquio <[email protected]> a écrit
> :
>
> Je me retrouve devant un problème incompréhensible (jusqu'à ce que je
>> trouve/on me donne la solution ;-) )
>> J'utilise, comme précisé avant la librairie sequel.
>> DEPA est une bdd contenant une colonne COMMUNES ayant une clé primaire
>> sur le champ `cle` SMALLINT(5)
>> CB est une bdd contenant une colonne communes ayant une clé primaire
>> sur le champ `id` INT(11)
>>
>> J'ai le code suivant :
>>
>> DEPA.transaction do
>>  communes = CB[:COMMUNES]
>>  communes.each do |commune|
>>    DEPA[:communes].insert(:id => commune[:cle])
>>  end
>> end
>>
>> Lorsque je l'execute j'obtient l'erreur suivante :
>>  Mysql::Error: Duplicate entry '246' for key 1 (Sequel::DatabaseError)
>>
>> Incompréhensible car cle étant une cle primaire, elle ne peut pas être
>> dupliqué...
>>
>> Lorsque je relance le meme script j'obitent l'erreur suivante :
>>  Mysql::Error: Duplicate entry '247' for key 1 (Sequel::DatabaseError)
>>
>> Et finalement si j'execute ce script un certains nombres de fois,
>> l'erreur disparait et le script est bien exécuté !!
>> J'ai pensé que cela pouvait venir du fait que `cle` soit un SMALLINT
>> (5) mais quand je modifie le type de la colonne pour un INT j'ai le
>> même résultat !
>>
>> Je comprend pas du tout, si quelqu'un peut m'aider MERCI !
>>
>> adrien
>>
>> On Dec 20, 3:44 pm, Adrien Coquio <[email protected]> wrote:
>> > Génial !!
>> > C'est exactement ce qu'il me fallait, pas une solution miracle, je me
>> > doutais qu'il n'en existe pas mais une méthode pour faire ca
>> > efficacement.
>> > Merci beaucoup :)
>> >
>> > adrien
>> >
>> > On Dec 20, 8:38 am, Bruno Michel <[email protected]> wrote:
>> >
>> > > Salut,
>> >
>> > > je suis en train de faire la même chose pour migrer les données de
>> > > LinuxFr.org de la version templeet vers la future version Rails. Je
>> n'ai
>> > > pas trouvé de solution miracle, mais je m'en suis pas trop mal sorti
>> > > avec sequel[1]. Les scripts sont sur github[2], donc tu peux jeter un
>> > > coup d'œil pour voir si ça te convient.
>> >
>> > > [1]http://sequel.rubyforge.org/documentation.html
>> > > [2]http://github.com/nono/migration-linuxfr.org
>> >
>> > > ++
>> > > Bruno
>> >
>> >
>>
>> --
>> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
>> Google Groups.
>> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
>> [email protected]
>> Pour résilier votre abonnement envoyez un e-mail à l'adresse
>> [email protected]
>>
>
>  --
> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
> Google Groups.
> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
> [email protected]
> Pour résilier votre abonnement envoyez un e-mail à l'adresse
> [email protected]
>

-- 
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]

Répondre à