logo

Columna PostgreSQL Drop

En aquesta secció, parlarem de com podem deixa anar les columnes amb l'ajuda de la ALTERA LA TAULA comandament.

Ordre PostgreSQL DROP COLUMN

Utilitzarem la condició DROP COLUMN a l'ordre ALTER TABLE per deixar anar una columna d'una taula:

 ALTER TABLE table_name DROP COLUMN column_name; 

PostgreSQL suprimirà automàticament totes les seves restriccions i índexs, inclosa la columna mentre s'elimina una columna d'una taula, i cada condició d'eliminació de columna està separada per un coma (,) .

No podem suprimir aquelles columnes on els altres objectes en depenen i també s'utilitzen en altres objectes de base de dades com activadors, visualitzacions, procediments emmagatzemats, etc.

Per tant, per eliminar aquestes columnes i tots els seus objectes connectats, utilitzarem el CASCADA opció a la deixar anar la columna comanda de la següent manera:

 ALTER TABLE table_name DROP COLUMN column_name CASCADE; 

Si volem eliminar una columna que no existeix, PostgreSQL plantejarà un problema. Afegirem la condició SI EXISTIS a l'ordre de la columna drop per superar aquest error, tal com podem veure a l'ordre següent:

 ALTER TABLE table_name DROP COLUMN IF EXISTS column_name; 

A l'ordre anterior, si suprimim una columna, que no existeix, PostgreSQL generarà un avís en lloc d'un error.

Utilitzarem l'ordre següent si necessitem eliminar les diverses columnes d'una taula en una sola ordre:

 ALTER TABLE table_name DROP COLUMN column_name_1, DROP COLUMN column_name_2; 

Exemples de l'ordre DROP COLUMN de PostgreSQL

Vegem alguns exemples per entendre el funcionament del ALTERA LA COLUMNA DE LA TAULA comandament.

replaceall en cadena java

Per tant, crearem tres taules diferents, com ara Producte, categories i marca .

Columna PostgreSQL Drop

En el diagrama anterior, cadascun Producte conté només un marca , i cada marca pot tenir diversos productes. Cada producte s'assigna a a categoria , i cada categoria pot tenir diversos productes.

Les ordres següents s'utilitzen per crear les tres taules (Categories, producte i marca) :

Creant el Categories taula amb l'ajuda de l'ordre següent:

css canviant la mida de la imatge
 CREATE TABLE Categories ( Cate_id serial PRIMARY KEY, Cate_name VARCHAR NOT NULL ); 

Sortida

Després d'executar l'ordre anterior, obtindrem el missatge següent; el Categories s'ha creat la taula.

Columna PostgreSQL Drop

Creant el Producte taula utilitzant la següent declaració:

 CREATE TABLE Product ( Pro_id serial PRIMARY KEY, Pro_name VARCHAR NOT NULL, Brand_id INT NOT NULL, Cate_id INT NOT NULL, List_price DECIMAL NOT NULL, Model_year SMALLINT NOT NULL, FOREIGN KEY (Cate_id) REFERENCES Categories (Cate_id), FOREIGN KEY (Brand_id) REFERENCES Brand (Brand_id) ); 

Sortida

Després d'executar l'ordre anterior, obtindrem el missatge següent; el Producte s'ha creat la taula.

Columna PostgreSQL Drop

Creant el Marca taula utilitzant l'ordre següent:

 CREATE TABLE Brand ( Brand_id serial PRIMARY KEY, Brand_name VARCHAR NOT NULL ); 

Sortida

Després d'executar l'ordre anterior, obtindrem el missatge següent; el Marca s'ha creat la taula.

np.random.rand
Columna PostgreSQL Drop

A més, creem una vista basada en el Producte i Marca taules de la següent manera:

 CREATE VIEW Product_info AS SELECT Pro_id, Pro_name, Brand_name FROM Product p INNER JOIN Brand B ON B .Brand_id = p.Brand_id ORDER BY Pro_name; 

Sortida

Després d'executar l'ordre anterior, obtindrem el missatge següent; el Informació_producte s'ha creat la vista.

Columna PostgreSQL Drop

Utilitzarem la següent comanda si volem eliminar el fitxer cate_id columna de la Producte taula:

 ALTER TABLE Product DROP COLUMN cate_id; 

Sortida

Després d'executar l'ordre anterior, obtindrem el missatge següent; el cate_id columna baixa de la Producte taula.

Columna PostgreSQL Drop

Si volem veure la taula en psql, utilitzarem l'ordre següent

 Javatpoint=# d Product; 

Columna PostgreSQL Drop

Com podem veure a la captura de pantalla anterior, l'ordre anterior elimina el fitxer Columna Cate_id i inclou el Cate_id columna a la restricció de clau estrangera.

Ara intentarem deixar caure el Brand_id columna de la Producte taula.

 ALTER TABLE Product DROP COLUMN Brand_id; 

Un cop executem l'ordre anterior, PostgreSQL generarà l'error següent:

Columna PostgreSQL Drop

Va afirmar que el informació_producte vista està utilitzant la columna Brand_id del Producte taula.

llarg per encadenar

Per tant, farem servir el cascada opció per eliminar tots dos Brand_id columna i Informació_producte veure amb l'ajuda de l'ordre següent:

 ALTER TABLE Product DROP COLUMN Brand_id CASCADE; 

Un cop implementem l'ordre anterior, augmentarà el següent avís i deixeu anar la columna concreta.

Columna PostgreSQL Drop

Aquí, deixarem caure els dos preu_lista i any_model columnes en una sola ordre, i hem d'utilitzar COLUMNA DE CAÍDA múltiple condicions com hem fet a continuació:

 ALTER TABLE Product DROP COLUMN List_Price, DROP COLUMN Model_year; 

Sortida

Després d'executar l'ordre anterior, obtindrem la finestra de missatge següent: The Columnes List_price i Model_year han estat eliminats de la Producte taula.

Columna PostgreSQL Drop

Si volem veure que les operacions anteriors funcionen bé o no, farem servir el Seleccioneu comandament:

 Select * from Product ; 

Sortida

Després d'executar l'ordre anterior, obtindrem la següent sortida:

Columna PostgreSQL Drop