2009-05-25 5 views
1

Je suis convertir un code mySQL à pgSQL et je l'ai rencontré ce problèmeConversion de la clé mySQL en PgSQL?

code mysql: "KEY ug_main_grp_id (ug_main_grp_id)"

Quel serait l'équivalent en PgSQL. D'abord, je pensais que je pouvais utiliser CREATE INDEX dans pgSQL, mais c'est vraiment pas approprié parce que KEY n'est pas un indice: P

+0

Ok, donc KEY est une TNX INDEX pour avoir éclairci ce point. Mais si une requête mysql contient quelque chose comme clé primaire (sess_id), KEY sess_id (sess_id), start_time KEY (start_time), remote_ip KEY (remote_ip) Je ne peux pas avoir plus d'un primaire, donc si je viens créer les autres sont des index uniques ou y at-il une meilleure solution –

Répondre

2

KEYest un indice, si c'est la syntaxe exacte que vous êtes le portage.

0
PRIMARY KEY (ug_main_grp_id) 
+0

Et oui, il est implémenté comme un index, comme le font la plupart des SGBD, mais c'est, comme l'indique l'instruction, un détail d'implémentation .... –

+0

Merci. J'ai ajouté un commentaire ci-dessus, et si j'ai plusieurs clés et que j'ai déjà un PKey –

0

Si elles clé est unique, il suffit d'utiliser UNIQUE comme dans:

mycolumn int NOT NULL UNIQUE 

mais si elle est un non-unique, vous devez utiliser la commande CREATE INDEX.

0

Vous n'avez rien de spécial à faire dans pgsql si vous avez plusieurs index, cela déterminera ceux que vous utiliserez automatiquement pour une requête donnée.

2

Compte tenu de votre exemple: KEY ug_main_grp_id (ug_main_grp_id)

vous ajouteriez juste après la déclaration CREATE TABLE:

CREATE INDEX ug_main_grp_id ON TheTableName (ug_main_grp_id); 
Questions connexes