Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

petit probleme de type sous postgresql

1 réponse
Avatar
Etienne SOBOLE
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.

Etienne

1 réponse

Avatar
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/