salut j'ai fait une boulette
j'ai déclaré un champ
monchamp boolean not null set default 'f'
alors que je voulais en fait faire
monchamp timestamp DEFAULT NULL,
la base est a présent remplie...
comment je peux faire pour changer.
une solution serait de mettre NULL dans ce champ (qui n'est pas encore
utlisé)
puis de dumper, de changer et restaurer,
mais a cause de not null je peux pas...
un petit coup de main serait sympa.
je précise que je suis sous postgres 7.1.4
et donc il m'est impossible de supprimer le champ.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacques Caron
Salut,
On Sat, 7 May 2005 12:22:03 +0200, Etienne SOBOLE wrote:
salut j'ai fait une boulette j'ai déclaré un champ
monchamp boolean not null set default 'f'
alors que je voulais en fait faire
monchamp timestamp DEFAULT NULL,
la base est a présent remplie... comment je peux faire pour changer.
alter table xxx alter column yyyy drop not null; alter table xxx alter column yyyy drop default;
Et éventuellement: update xxx set yyy=null where not yyyy;
(mais je ne sais pas si false signifie qu'il s'agit forcément de la valeur par défaut...).
une solution serait de mettre NULL dans ce champ (qui n'est pas encore utlisé) puis de dumper, de changer et restaurer, mais a cause de not null je peux pas...
Tu peux faire un dump/sed/psql qui modifie ce qu'il faut au passage, y compris le schéma.
et donc il m'est impossible de supprimer le champ.
Il y a aussi pour certains cas la méthode "j'ajoute un champ comme il faut, puis je supprime l'ancien et je renomme le nouveau d'un coup sec". Mais ce ne devrait pas être nécessaire ici.
Jacques. -- Interactive Media Factory Création, développement et hébergement de services interactifs: SMS, SMS+, Audiotel... http://www.imfeurope.com/
Salut,
On Sat, 7 May 2005 12:22:03 +0200, Etienne SOBOLE <etienne-nospam@tlk.fr>
wrote:
salut j'ai fait une boulette
j'ai déclaré un champ
monchamp boolean not null set default 'f'
alors que je voulais en fait faire
monchamp timestamp DEFAULT NULL,
la base est a présent remplie...
comment je peux faire pour changer.
alter table xxx alter column yyyy drop not null;
alter table xxx alter column yyyy drop default;
Et éventuellement:
update xxx set yyy=null where not yyyy;
(mais je ne sais pas si false signifie qu'il s'agit forcément de la valeur
par défaut...).
une solution serait de mettre NULL dans ce champ (qui n'est pas encore
utlisé)
puis de dumper, de changer et restaurer,
mais a cause de not null je peux pas...
Tu peux faire un dump/sed/psql qui modifie ce qu'il faut au passage, y
compris le schéma.
et donc il m'est impossible de supprimer le champ.
Il y a aussi pour certains cas la méthode "j'ajoute un champ comme il
faut, puis je supprime l'ancien et je renomme le nouveau d'un coup sec".
Mais ce ne devrait pas être nécessaire ici.
Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/
On Sat, 7 May 2005 12:22:03 +0200, Etienne SOBOLE wrote:
salut j'ai fait une boulette j'ai déclaré un champ
monchamp boolean not null set default 'f'
alors que je voulais en fait faire
monchamp timestamp DEFAULT NULL,
la base est a présent remplie... comment je peux faire pour changer.
alter table xxx alter column yyyy drop not null; alter table xxx alter column yyyy drop default;
Et éventuellement: update xxx set yyy=null where not yyyy;
(mais je ne sais pas si false signifie qu'il s'agit forcément de la valeur par défaut...).
une solution serait de mettre NULL dans ce champ (qui n'est pas encore utlisé) puis de dumper, de changer et restaurer, mais a cause de not null je peux pas...
Tu peux faire un dump/sed/psql qui modifie ce qu'il faut au passage, y compris le schéma.
et donc il m'est impossible de supprimer le champ.
Il y a aussi pour certains cas la méthode "j'ajoute un champ comme il faut, puis je supprime l'ancien et je renomme le nouveau d'un coup sec". Mais ce ne devrait pas être nécessaire ici.
Jacques. -- Interactive Media Factory Création, développement et hébergement de services interactifs: SMS, SMS+, Audiotel... http://www.imfeurope.com/