Bonjour tout le monde.
Je cherche à savoir si il est possible de faire un Select avec une clef primaire sur plusieurs colonnes
C'est a dire:
Voici une table d'exemple fictive:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| CREATE TABLE IF NOT EXISTS `MaTable` (
`Id_Societe` int(9) unsigned NOT NULL,
`Id_Type` varchar(40) collate utf8_unicode_ci NOT NULL,
`Id_Photo` int(9) unsigned NOT NULL ,
`Id_PhotosAlbum` int(9) unsigned NOT NULL,
`Id_SizeMode` varchar(40) collate utf8_unicode_ci NOT NULL,
`NomFichier` varchar(255) collate utf8_unicode_ci NOT NULL,
`PoidsOct` int(8) unsigned default NULL,
`Width` int(4) unsigned default NULL,
`Height` int(4) unsigned default NULL,
`DateMake` timestamp NOT NULL default '0000-00-00 00:00:00',
`DateModif` timestamp NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`Id_Societe`,`Id_Type`, `Id_Photo`,`Id_PhotosAlbum`, `Id_SizeMode`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ; |
Admettons que je souhaite récupérer les informations d'une ligne dont j'ai la clef primaire
D’habitude je procède ainsi:
SELECT * FROM `MaTable` WHERE `Id_Societe` = 'MaValeur1' AND `Id_Type` = 'MaValeur2' AND `Id_Photo` = 'MaValeur3' AND `Id_PhotosAlbum` = 'MaValeur4' AND `Id_SizeMode` = 'MaValeur5';
Cette requette me retourne une seule ligne et c'est normal, de plus c'est ce que je cherche à faire...
Ce que j'aimerais savoir c'est si il est possible de travailler directement sur la clef primaire
Voici un exemple:
Cet exemple et faux je le sais bien mais je cherche un equivalent
SELECT * FROM `MaTable` WHERE PRIMARY KEY = ( 'MaValeur1','MaValeur2','MaValeur3','MaValeur4','MaValeur5') ;
Ou encore
SELECT * FROM `MaTable` WHERE PRIMARY KEY = 'Une forme normalisé de la cléf' ;
Partager