Plusieurs questions [DB2] - SQL/NoSQL - Programmation
Marsh Posté le 24-04-2006 à 09:46:56
Dost67 a écrit : Bonjour. |
On s'y fait vite mais c'est vrai que c'est un peu le bronx
Dost67 a écrit : 1. Quand je fais un UNIQUE(nom, prenom, date_naissance) DB2 créé-t-il un index pour faut-il que je rajoute qqch comme INDEX(nom(3)) en plus pour que l'insertion soit plus rapide ? |
J'étais pas sur donc un coup de doc et oui, il semble le créer:
Citation : Once established, the unique constraint is enforced automatically by the database manager when an INSERT or UPDATE statement modifies the data in the table. The unique constraint is enforced through a unique index. |
le reste ici: http://publib.boulder.ibm.com/info [...] 004979.htm
Dost67 a écrit : 2. Même question avec FOREIGN KEY : créé-t-il un index ou faut-il le créer en plus ? |
non
Dost67 a écrit : 3. En MySQL pour avoir des entiers positifs je mets des INTEGER UNSIGNED. Avec DB2 je n'ai pas trouvé d'autre solution que de rajouter un CHECK(VALUE >= 0)... Y'a-t-il une autre possibilité ?[/quote]
|
Code :
|
Sinon tu as un super truc dans le module d'administration client ( qui te dessine les arbres toussa c'est très bo)
Dost67 a écrit : 6. Le type ENUM n'a pas l'air d'exister. Comment simuler un ENUM('1','2','3') autrement qu'avec un CHECK ? |
moi pas connaître
Marsh Posté le 24-04-2006 à 13:50:22
Merci c cool pour les réponses. Je vais regarder tout ça de plus près.
Marsh Posté le 24-04-2006 à 16:06:20
Je voulais déclarer des UNSIGNED pour n'avoir que des entiers positifs. Mais j'ai utilisé un CHECK à la place.
Il reste toujours un flou sur les UNIQUE.
En fait je vais mettre un exemple :
Code :
|
Le prof veut que les clés candidates soient déclarées UNIQUE. Le problème c'est que je veux que Nom, Prénom, Date_Naissance soit unique mais je voudrais en fait créer un index que sur Nom(3) car sinon bonjour l'utilisation inutile de l'espace disque.
Et aussi : j'ai lu que CLOB c'est pas bon de l'utiliser car DB2 le gère mal, que dois-je utiliser à la place ?
Marsh Posté le 24-04-2006 à 01:10:06
Bonjour.
A l'école on bosse sous DB2. J'ai pas mal de questions. J'ai essayé de chercher des réponses dans la doc mais c un véritable bordel. Donc j'aimerais bcp que vous m'aidiez.
1. Quand je fais un UNIQUE(nom, prenom, date_naissance) DB2 créé-t-il un index pour faut-il que je rajoute qqch comme INDEX(nom(3)) en plus pour que l'insertion soit plus rapide ?
2. Même question avec FOREIGN KEY : créé-t-il un index ou faut-il le créer en plus ?
3. En MySQL pour avoir des entiers positifs je mets des INTEGER UNSIGNED. Avec DB2 je n'ai pas trouvé d'autre solution que de rajouter un CHECK(VALUE >= 0)... Y'a-t-il une autre possibilité ?
4. J'ai la description de mes tables (les CREATE TABLE) dans un fichier texte (.sql). Comment les importer depuis la ligne de commande ?
5. En MySQL je fais un EXPLAIN MAREQUETE pour analyser l'utilisation des index. Comment faire avec DB2 ?
6. Le type ENUM n'a pas l'air d'exister. Comment simuler un ENUM('1','2','3') autrement qu'avec un CHECK ?
Merci d'avance.