zbug doublon sur table sans cle primaire

Bonsoir,

J'ai un souci avec une table supplémentaire sue j'ai déclaré via mes fonctions.
Je n'arrive pas à utiliser le critère doublons dessus, SPIP me renvoyant le message
"zbug doublon sur table sans cle primaire"

Pourtant la clé est bien déclarée . Ci-dessous le fichier mes_fonctions :

<?php
include ('ecrire/base/auxiliaires.php');
global $tables_auxiliaires;
$spip_auteurs_amis = array(
    "id_auteur" => "bigint(21) DEFAULT '0' NOT NULL",
    "id_ami" => "bigint(21) DEFAULT '0' NOT NULL",
    "statut" => "VARCHAR (3) DEFAULT '0' NOT NULL");

$spip_auteurs_amis_key = array(
    "PRIMARY KEY" => "id_auteur, id_ami",
    "KEY id_ami" => "id_ami");

$tables_auxiliaires['spip_auteurs_amis'] = array(
  'field' => &$spip_auteurs_amis,
  'key' => &$spip_auteurs_amis_key);
  
$table_des_tables['auteurs_amis']='auteurs_amis';
?>

Si quelqu'un a une idée... elle est la bienvenue.
merci par avance.

Pierrick

Désolé pour le bruit inutile. Je me réponds tout seul. Il fallait simplement disposer d'un champ incrémenté, valide comme clé d'index.

Pour le fichier mes_fonctions, ça donne ;

<?php
include ('ecrire/base/auxiliaires.php');
global $tables_auxiliaires;
$spip_auteurs_amis = array(
    "id" => "bigint(21) DEFAULT '0' NOT NULL",
    "id_auteur" => "bigint(21) DEFAULT '0' NOT NULL",
    "id_ami" => "bigint(21) DEFAULT '0' NOT NULL",
    "statut" => "VARCHAR (3) DEFAULT '0' NOT NULL");

$spip_auteurs_amis_key = array(
    "PRIMARY KEY" => "id");

$tables_auxiliaires['spip_auteurs_amis'] = array(
  'field' => &$spip_auteurs_amis,
  'key' => &$spip_auteurs_amis_key);
  
$table_des_tables['auteurs_amis']='auteurs_amis';
?>

Les solutions les plus simples sont toujours les meilleures.
Bonne soirée à tous.

P

Le 12 déc. 09 à 19:50, Pierrick Le Feuvre a écrit :

nclude ('ecrire/base/auxiliaires.php');
global $tables_auxiliaires;
$spip_auteurs_amis = array(
    "id_auteur" => "bigint(21) DEFAULT '0' NOT NULL",
    "id_ami" => "bigint(21) DEFAULT '0' NOT NULL",
    "statut" => "VARCHAR (3) DEFAULT '0' NOT NULL");

$spip_auteurs_amis_key = array(
    "PRIMARY KEY" => "id_auteur, id_ami",
    "KEY id_ami" => "id_ami");

$tables_auxiliaires['spip_auteurs_amis'] = array(
  'field' => &$spip_auteurs_amis,
  'key' => &$spip_auteurs_amis_key);
  
$table_des_tables['auteurs_amis']='auteurs_amis';
?>

Si quelqu'un a une idée... elle est la bienvenue.
merci par avance.

Pierrick

Pierrick Le Feuvre a écrit :

Désolé pour le bruit inutile. Je me réponds tout seul. Il fallait simplement disposer d'un champ incrémenté, valide comme clé d'index.

Tu nous prépares un plugin spip_amis ?

JL

Pour le fichier mes_fonctions, ça donne ;

<?php
include ('ecrire/base/auxiliaires.php');
global $tables_auxiliaires;
$spip_auteurs_amis = array(
        "id" => "bigint(21) DEFAULT '0' NOT NULL",
        "id_auteur" => "bigint(21) DEFAULT '0' NOT NULL",
        "id_ami" => "bigint(21) DEFAULT '0' NOT NULL",
        "statut" => "VARCHAR (3) DEFAULT '0' NOT NULL");

$spip_auteurs_amis_key = array(
        "PRIMARY KEY" => "id");

$tables_auxiliaires['spip_auteurs_amis'] = array(
    'field' => &$spip_auteurs_amis,
    'key' => &$spip_auteurs_amis_key);
    $table_des_tables['auteurs_amis']='auteurs_amis';
?>

Les solutions les plus simples sont toujours les meilleures.
Bonne soirée à tous.

P

Le 12 déc. 09 à 19:50, Pierrick Le Feuvre a écrit :

nclude ('ecrire/base/auxiliaires.php');
global $tables_auxiliaires;
$spip_auteurs_amis = array(
        "id_auteur" => "bigint(21) DEFAULT '0' NOT NULL",
        "id_ami" => "bigint(21) DEFAULT '0' NOT NULL",
        "statut" => "VARCHAR (3) DEFAULT '0' NOT NULL");

$spip_auteurs_amis_key = array(
        "PRIMARY KEY" => "id_auteur, id_ami",
        "KEY id_ami" => "id_ami");

$tables_auxiliaires['spip_auteurs_amis'] = array(
    'field' => &$spip_auteurs_amis,
    'key' => &$spip_auteurs_amis_key);
    $table_des_tables['auteurs_amis']='auteurs_amis';
?>

Si quelqu'un a une idée... elle est la bienvenue.
merci par avance.

Pierrick