Sql...connaitre la cle primaire dune table
Résolu/Fermé
ixce
Messages postés
51
Date d'inscription
mardi 13 mai 2008
Statut
Membre
Dernière intervention
17 décembre 2008
-
4 juin 2008 à 17:57
Myste - 4 févr. 2009 à 07:55
Myste - 4 févr. 2009 à 07:55
A voir également:
- Afficher clé primaire sql
- Clé windows 10 gratuit - Guide
- Cle usb non reconnu - Guide
- Clé bootable windows 10 - Guide
- Recuperer cle windows - Guide
- Formater clé usb mac - Guide
7 réponses
macgawel
Messages postés
664
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
89
4 juin 2008 à 18:15
4 juin 2008 à 18:15
Bonjour.
Une requête qui peut t'aider : DESC MaTable
Ca te renvoie les informations sur MaTable...
Une requête qui peut t'aider : DESC MaTable
Ca te renvoie les informations sur MaTable...
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
19
4 juin 2008 à 18:38
4 juin 2008 à 18:38
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
ixce
Messages postés
51
Date d'inscription
mardi 13 mai 2008
Statut
Membre
Dernière intervention
17 décembre 2008
3
5 juin 2008 à 15:49
5 juin 2008 à 15:49
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
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
19
4 juin 2008 à 18:32
4 juin 2008 à 18:32
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
Xil
Messages postés
350
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
11 juin 2009
257
19 sept. 2008 à 16:12
19 sept. 2008 à 16:12
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 ? :)
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
19
4 juin 2008 à 18:02
4 juin 2008 à 18:02
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.
ixce
Messages postés
51
Date d'inscription
mardi 13 mai 2008
Statut
Membre
Dernière intervention
17 décembre 2008
3
4 juin 2008 à 18:19
4 juin 2008 à 18:19
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...;)