Sql...connaitre la cle primaire dune table
Résolu
ixce
Messages postés
51
Date d'inscription
Statut
Membre
Dernière intervention
-
Myste -
Myste -
Bonjour,
voila je cherche, au moyen dune requete dans une page php, a connaitre quelle est champ clé primaire de la table donnée. ou bien sans forcement connaitre son nom au moins pouvoir lappeler.
en vous remerciant, xav
voila je cherche, au moyen dune requete dans une page php, a connaitre quelle est champ clé primaire de la table donnée. ou bien sans forcement connaitre son nom au moins pouvoir lappeler.
en vous remerciant, xav
A voir également:
- Clé primaire sql
- Clé usb non détectée - Guide
- Clé windows 8 - Guide
- Formater clé usb - Guide
- Clé usb - Accueil - Stockage
- Clé bootable windows 10 - Guide
7 réponses
Voilà qui peut aider:
Get primary key columns
Author Nigel Rivett
declare @TableName varchar(128)
select @TableName = 'mytbl'
select c.COLUMN_NAME
from INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk ,
INFORMATION_SCHEMA.KEY_COLUMN_USAGE c
where pk.TABLE_NAME = @TableName
and CONSTRAINT_TYPE = 'PRIMARY KEY'
and c.TABLE_NAME = pk.TABLE_NAME
and c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME
Get primary key columns
Author Nigel Rivett
declare @TableName varchar(128)
select @TableName = 'mytbl'
select c.COLUMN_NAME
from INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk ,
INFORMATION_SCHEMA.KEY_COLUMN_USAGE c
where pk.TABLE_NAME = @TableName
and CONSTRAINT_TYPE = 'PRIMARY KEY'
and c.TABLE_NAME = pk.TABLE_NAME
and c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME
et la réponse a été donnée,
'desc' synonyme de 'describe' et de 'show columns from'
http://dev.mysql.com/doc/refman/5.0/fr/describe.html
voila , je vous remercie quand meme.
'desc' synonyme de 'describe' et de 'show columns from'
http://dev.mysql.com/doc/refman/5.0/fr/describe.html
voila , je vous remercie quand meme.
Je reviens avec un petit code très simple d'utilisation pour les néophites (trouvé apres quelques minute de recherches) ->
////////////////////////////////////////////////////////////////
//........Connexion à la base de donnée blablabla........ //
// $res = mysql_query('DESCRIBE NOM_DE_LA_TABLE');
// $primary_key = '';
// while($line = mysql_fetch_array($res))
// {
// if(isset($line['Key']) && $line['Key'] == 'PRI'){
// $primary_key = $line['Field'];
// break;
// }
//}
// Affichage du champ primaire :)
//echo $primary_key;
/////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
//........Connexion à la base de donnée blablabla........ //
// $res = mysql_query('DESCRIBE NOM_DE_LA_TABLE');
// $primary_key = '';
// while($line = mysql_fetch_array($res))
// {
// if(isset($line['Key']) && $line['Key'] == 'PRI'){
// $primary_key = $line['Field'];
// break;
// }
//}
// Affichage du champ primaire :)
//echo $primary_key;
/////////////////////////////////////////////////////////////
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ben je vois pas le but de chercher le champ clé primaire d'une table que tu as créer toi même et dont tu connais la structure. Voilà, je ne crois pas avoir déjà vu quelqu'un chercher un truc pareil tellement c'est étrange et un peu inutile.
Pour vérifier si ça existe ou pas c'est ca:
$count = mysql_num_rows(SELECT * FROM ".$table." WHERE PRIMARY="."$TabVar[1]" );
Si $count = 0 alors n'existe pas encore donc insert sinon update.
Une façon de faire. Mais pour trouver le champ primaire ça je ne sais pas et je ne comprend pas l'idée. Si quelqu'un d'autre a déjà fait ça, qu'il m'en explique le but. O_O
EDIT: SQL c'est le select et ensuite @@row_count
Pour vérifier si ça existe ou pas c'est ca:
$count = mysql_num_rows(SELECT * FROM ".$table." WHERE PRIMARY="."$TabVar[1]" );
Si $count = 0 alors n'existe pas encore donc insert sinon update.
Une façon de faire. Mais pour trouver le champ primaire ça je ne sais pas et je ne comprend pas l'idée. Si quelqu'un d'autre a déjà fait ça, qu'il m'en explique le but. O_O
EDIT: SQL c'est le select et ensuite @@row_count
Par exemple, quand tu fais un script de mise à jour générique, qui peut mettre à jour un champs choisi par l'utilisateur, d'une table choisie par l'utilisateur et dont tu ne sais ni les clés primaire ni le nombre de clé.
Il faut donc que le script soit capable de repérer les clés.
Ou encore si tu veux simplement pouvoir les afficher.
Il faut donc que le script soit capable de repérer les clés.
Ou encore si tu veux simplement pouvoir les afficher.
Pour ma part j'ai projet dans mon école qui consiste à refaire un gestionaire de base de données.
n l'ocurence, j'évite qu'on puisse DROP la colone primary key, en voici un d'exemple d'utilisation non ? :)
n l'ocurence, j'évite qu'on puisse DROP la colone primary key, en voici un d'exemple d'utilisation non ? :)
C'est parce que, comment tu veux utiliser une table dont tu ne connais pas le contenu? C'est un peu bête comme situation non??? En général, quand tu crées une table, tu connais sa structure et son contenu pour justement pouvoir l'utilisé. Sinon elle n'a aucun but.
c vrai c'est un peu vague...
mais le but du script php est de recevoir un bloc compressé de données contenant des manipulations a faire sur une base mysql au multiple table.
en loccurence je connais bien le nom de la table dans laquelle je vais faire des creations, modifications et suppressions.
seulement pour massurer qu'il sagisse bien dune creation ou dune modification, je veux tester voir si les valeurs ne sont pas deja presentes.
ex=si pour une modification la valeur nexiste pas alors ca sera une creation, et inversement dans le cas dune creation.
pour connaitre son existence au sein de la table je dois interroger cette table en demandant il connait deja cette clé primaire(extraite du bloc compressée), mais comment connaitre le nom de ce champs qui est clé primaire???
(la je pense faire un "SELECT * FROM ".$table." WHERE PRIMARY="."$TabVar[1]" )
ce qui compte ca n'est pas de participer, mais d'aider, x-fan, tu devrais aller te reposer un peu...;)
mais le but du script php est de recevoir un bloc compressé de données contenant des manipulations a faire sur une base mysql au multiple table.
en loccurence je connais bien le nom de la table dans laquelle je vais faire des creations, modifications et suppressions.
seulement pour massurer qu'il sagisse bien dune creation ou dune modification, je veux tester voir si les valeurs ne sont pas deja presentes.
ex=si pour une modification la valeur nexiste pas alors ca sera une creation, et inversement dans le cas dune creation.
pour connaitre son existence au sein de la table je dois interroger cette table en demandant il connait deja cette clé primaire(extraite du bloc compressée), mais comment connaitre le nom de ce champs qui est clé primaire???
(la je pense faire un "SELECT * FROM ".$table." WHERE PRIMARY="."$TabVar[1]" )
ce qui compte ca n'est pas de participer, mais d'aider, x-fan, tu devrais aller te reposer un peu...;)