|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2008 Messages : 6 ![]() |
J’ai un petit souci et j’espère que vous pourriez m’aider.
En fait j’ai un champ ‘numéro d’ordre’ ou je veux qu’il prend un numéro unique sauf pour Null et 0 ces deux la ne sont pas uniques et on peut les trouver plusieurs fois. J’ai fait un index unique sur la table : CREATE UNIQUE INDEX ix_table1 ON table1 (decode (numero_ordre, NULL, NULL, 0,0, champ2), numero_ordre); Pour Null ca marche par contre pour 0 ca bloque : ORA-01452: cannot CREATE UNIQUE INDEX; duplicate keys found Merci de m’aider |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 320 ![]() |
Ton decode dit :
Si Null Then NULL et la valeur NULL n’est pas normalement indexé Si 0 Then 0 Etc… Donc si ils existent n valeurs 0 comment veux tu avoir un index unique ? Question : C’est un index unique ou une contrainte d’unicité ? |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mars 2008 Messages : 6 ![]() |
J'ai fait un index unique
En fait je veux que tous les chiffres de 1 à 999 soient uniques par contre je peut avoir plusieurs 0 et plusieurs null. |
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 320 ![]() |
Donc tu as besoin d’une contrainte. Est-ce que ta table contient déjà des données non uniques et que tu veux que les données à venir respectent cette règle ou est-ce que tu veux tout simplement ajouter une contrainte d’unicité un peu spéciale ?
PS Si tu fait quelque chose de type Code :
|
||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : mars 2008 Messages : 6 ![]() |
Et je fais comment si je change en contrainte unique pour qu'il puisse prendre plusieurs 0.
Sinon pour: Code :
CREATE UNIQUE INDEX ix_test_nr ON test_nr (decode(a,0,NULL,a)) |
|
|
00
|
|
|
#6 | |||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 320 ![]() |
Citation:
Code :
|
|||
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : mars 2008 Messages : 6 ![]() |
Je vais essayer .
Merci pour ton aide et bonne soirée |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com