|
Oracle 11g ne vous permet pas explicitement de spécifier un nom pour une contrainte par défaut lorsque vous la créez à l'aide de la clause `DEFAULT` directement dans l'instruction `CREATE TABLE`. La base de données attribue automatiquement un nom généré par le système.
Vous pouvez cependant afficher le nom attribué par Oracle à l'aide de la vue du dictionnaire de données `USER_CONSTRAINTS`. Le nom sera dans la colonne `CONSTRAINT_NAME`, où `CONSTRAINT_TYPE` est 'D' (par défaut).
Par exemple:
```sql
SELECT nom_contrainte
DEPUIS user_constraints
OÙ nom_table ='VOTRE_NOM_TABLE'
ET type_contrainte ='D';
```
Remplacez `YOUR_TABLE_NAME` par le nom réel de votre table.
Si vous *avez* besoin d'un nom spécifique pour une contrainte par défaut, vous devez le créer séparément à l'aide d'une instruction `ALTER TABLE` avec une clause `ADD CONSTRAINT`. Cela vous permet de définir explicitement le nom de la contrainte :
```sql
ALTER TABLE YOUR_TABLE_NAME
ADD CONSTRAINT YOUR_CONSTRAINT_NAME DEFAULT 'your_default_value' FOR column_name ;
```
Remplacer:
* `YOUR_TABLE_NAME` avec le nom de votre table.
* `YOUR_CONSTRAINT_NAME` avec le nom de contrainte souhaité (doit être un identifiant Oracle valide).
* `your_default_value` avec la valeur par défaut réelle.
* `column_name` avec le nom de la colonne à laquelle vous ajoutez la contrainte par défaut.
En résumé, il n'y a pas de syntaxe pour une contrainte *par défaut* *nom* dans l'instruction `CREATE TABLE`; le système en génère un. Pour contrôler le nom, vous devez utiliser `ALTER TABLE ... ADD CONSTRAINT`.
|