Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/04/2006, 10h00   #1
Membre régulier
 
Inscription : février 2005
Messages : 100
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 100
Points : 88
Points : 88
Par défaut changer de valeur par défaut

Bonjour

Je souhaiterais savoir comment modifier la valeur par défaut d'une colonne en utilisant un alter table sous firebird.
J'ai bien constaté qu'on peut le faire au cours de la création de la colonne mais j'aurais besoin de le faire par une modification de la structure de la table. J'ai également vu que l'on peut changer la valeur par défaut du domaine mais cela ne convient pas à l'utilisation que je fais de ces domaines.
J'ai bien essayé des instructions de ce style pourtant conforme à la norme SQL :

Code :
1
2
 
ALTER TABLE MaTable ALTER MaColonne SET DEFAULT MaValeurParDefaut
.

Mais cela ne fonctionne pas. De plus j'aimerais savoir s'il est possible d'affecter une valeur retournée par une UDF.
Merci par avance et bon codage à tous,

SillyCoder
sillycoder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2006, 10h16   #2
Membre actif
 
Inscription : octobre 2004
Messages : 141
Détails du profil
Informations personnelles :
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations forums :
Inscription : octobre 2004
Messages : 141
Points : 152
Points : 152
Bonjour,

Pourquoi tu n'utilises pas un trigger ?
Mirmillon
Mirmillon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2006, 10h25   #3
Membre régulier
 
Inscription : février 2005
Messages : 100
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 100
Points : 88
Points : 88
C'est pas bête comme idée et j'y avais pensé mais le soucis c'est que la restructuration est automatisé et que par conséquent ce serait plus pratique de changer la valeur par défaut au cours de la restructuration.
En tout cas merci pour la réponse .
sillycoder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2006, 14h35   #4
Membre régulier
 
Inscription : février 2005
Messages : 100
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 100
Points : 88
Points : 88
C'est fort, je résoud moi-même mes problèmes . En fait j'ai trouvé une astuce utilisée par IBExpert. Alors si un jour, vous être confronté au même problème que moi voici les requêtes SQL à exécuter pour obtenir un résultat similaire à celui escompté :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
ALTER TABLE MaTable ADD IBE$$TEMP_COLUMN
 MonType DEFAULT MaValeur;
 
UPDATE RDB$RELATION_FIELDS F1
SET
F1.RDB$DEFAULT_VALUE  = (SELECT F2.RDB$DEFAULT_VALUE
                         FROM RDB$RELATION_FIELDS F2
                         WHERE (F2.RDB$RELATION_NAME = 'MaTable') AND
                               (F2.RDB$FIELD_NAME = 'IBE$$TEMP_COLUMN')),
F1.RDB$DEFAULT_SOURCE = (SELECT F3.RDB$DEFAULT_SOURCE FROM RDB$RELATION_FIELDS F3
                         WHERE (F3.RDB$RELATION_NAME = 'MaTable ') AND
                               (F3.RDB$FIELD_NAME = 'IBE$$TEMP_COLUMN'))
WHERE (F1.RDB$RELATION_NAME = 'MaTable ') AND
      (F1.RDB$FIELD_NAME = 'MaColonne');
 
ALTER TABLE MaTable DROP IBE$$TEMP_COLUMN;
Cela sent la bidouille à plein nez et on doit passer par plusieurs requêtes et une colonne temporaire mais le fait est que cela fonctionne et c'est bien le résultat voulu.

Bonne continuation à tous,

SillyCoder
sillycoder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2007, 20h33   #5
dug
Membre du Club
 
Inscription : mai 2002
Messages : 151
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 151
Points : 50
Points : 50
Envoyer un message via ICQ à dug Envoyer un message via MSN à dug
merci d'avoir marqué ta solus !!

ça me dépanne bien
dug est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h28.


 
 
 
 
Partenaires

Hébergement Web