sql >> Base de Datos >  >> RDS >> Mysql

convertir secuencias de comandos mysql a secuencias de comandos postgresql

La declaración que publicaste no es una sintaxis válida :
SQL Fiddle

Para cambiar el tipo en MySQL, usaría CHANGE o MODIFY .
Para cambiar el valor predeterminado, usaría DROP DEFAULT o SET DEFAULT NULL .

Si la intención era cambiar el tipo y restablecer el valor predeterminado de la columna:

Como en MySQL , puede empaquetar varias acciones en un solo ALTER TABLE declaración en Postgres .

ALTER TABLE lcr_gw ALTER COLUMN ip_addr SET DEFAULT NULL
                  ,ALTER COLUMN ip_addr TYPE VARCHAR(50);

Por documentación:

Pero si hubiera un DEFAULT en la columna que es incompatible con el nuevo tipo, debe ejecutar dos declaraciones separadas:

ALTER TABLE lcr_gw ALTER COLUMN ip_addr SET DEFAULT NULL;
ALTER TABLE lcr_gw ALTER COLUMN ip_addr TYPE VARCHAR(50);

No importa en este caso de todos modos.