MODIFICAR TABLA tabla [ * ] A�ADIR [ COLUMNA ] columna tipo MODIFICAR TABLA tabla [ * ] MODIFICAR [ COLUMNA ] columna { SET DEFAULT valor | DROP DEFAULT } MODIFICAR TABLA tabla [ * ] RENOMBRAR [ COLUMNA ] columna A nueva columna MODIFICAR TABLA tabla RENOMBRAR A nueva tabla |
MODIFICAR TABLA cambia la definici�n de una tabla existente. La orden A�ADIR COLUMNA a�ade una nueva columna a la tabla usando la misma sintaxis que CREATE TABLE. La orden MODIFICAR COLUMNA le permite poner o eliminar los valores por defecto de la columna. Notese que los valores por defecto s�lo se aplicaran a las lineas que inserte nuevas. La clausula RENOMBRAR causa que el nombre de una tabla o de una columna cambie sin que se modifique ninguno de los datos contenidos en la tabla afectada. De este modo, la tabla o la columna permanecer� del mismo tipo y tama�o despu�s de que este comando sea ejecutado.
Usted debe ser el creador de esta tabla para poder cambiar su esquema.
The palabra clave COLUMNA es muy usada por lo que se debe omitir.
"*" siguiendo a un nombre de una talba indica que la orden debe ejecutarse sobre esa tabla y todas las tablas que esten bajo ella en la jerarqu�a subsequente; por defecto, el atributo no ser� a�adido a o renombrado en ninguna de las subclases. Esto siempre se debe hacer cuando se a�ade o modifica un atributo en una superclase. Si no es as�, las preguntas en la jerarqu�a subsequente como
SELECCIONAR nueva columna DESDE SuperClase* |
En la presente implementaci�n, las clausulas por defecto y limitadoras para la nueva columna seran ignoradas. Usted puede usar la ordenPONER VALORES POR DEFECTO de MODIFICAR TABLA para poner los valores por defecto m�s tarde. (Usted tendr� tambi�n que actualizar las lineas existentes a los nuevos valores por defecto, usando UPDATE.)
Usted debe ser el creador de la clase para poder cambiar el esquema. Renombrar cualquier parte de un esquema del cat�logo de un sistema no est� permitido. La Gu�a del Usuario de PostgreSQL tiene m�s informaci�n de las herencias subsequentes.
Dir�gase aCREAR TABLA para una descipci�n m�s amplia de los argumentos v�lidos.
Para a�adir a una columna de tipo VARCHAR a una tabla:
MODIFICAR TABLA distribuidores A�ADIR COLUMNA direcciones VARCHAR(30); |
Para renombrar una columna existente:
MODIFICAR TABLA distribuidores RENOMBRAR COLUMNA direcciones A ciudad; |
Para renombrar una tabla existente:
MODIFICAR TABLA distribuidores RENOMBRA A proveedores; |
La orden A�ADIR COLUMNA est� asumida con la excepci�n de que no soporta los valores por defecto y limitaciones, como se explic� m�s arriba. La orden MODIFICAR COLUMNA est� en sumisi�n completa.
SQL92 especifica algunas capacidades adicionales para MODIFICAR TABLA �rdenes que no est�n todav�a directamente soportadas por PostgreSQL:
MODIFICAR TABLA tabla A�ADIR definici�n de limitaci�n de tabla MODIFICAR TABLA tabla ELIMINAR LIMITACION limitaci�n { RESTRICT | CASCADE } |
A�adir o eliminar una limitaci�n de tabla (como una limitaci�n de comprobaci�n, limitaci�n �nica, o limitaci�n de orden extra�a). Para crear o eliminar una limitaci�n �nica, crear o eliminar un �ndice �nico, respectivamente (ver CREATE INDEX). Para cambiar otras clase de limitaciones necesita recrear y recargar la tabla usando otros par�metros para la CREATE TABLE orden.
Por ejemplo, para eliminar cualquier limitaci�n en una tabla distribuidores:
CREAR TABLA temp COMO SELECCIONAR * DESDE distribuidores; ELIMINAR TABLA distribuidores; CREAR TABLA distribuidores COMO SELECCIONAR * DESDE temp; ELIMINAR TABLA temp; |
MODIFICAR TABLA tabla ELIMINAR [ COLUMNA ] columna { RESTRICT | CASCADE } |
Eliminar una columna de una tabla. Corrientemente, para eliminar una columan existente la tabla debe ser recreada y recargada:
CREAR TABLA temp COMO SELECCIONAR did, ciudad DESDE distribuidores; ELIMINAR TABLA distribuidores; CREAR TABLA distribuidores ( did DECIMAL(3) DEFAULT 1, name VARCHAR(40) NOT NULL, ); INSERTAR DENTRO distribuidores SELECCIONAR * DESDE temp; ELIMINAT TABLA temp; |
Las clausulas para renombrar columnas y tablas son extensiones para PostgreSQL SQL92 no las provee.