524 Stimmen

Wie löscht man eine Spalte aus einer Tabelle in MySQL?

Angesichts der mit erstellten Tabelle:

CREATE TABLE tbl_Country
(
  CountryId INT NOT NULL AUTO_INCREMENT,
  IsDeleted bit,
  PRIMARY KEY (CountryId) 
)

Wie kann ich die Spalte löschen? IsDeleted ?

13voto

A. Colonna Punkte 852

Wenn Sie MySQL 5.6 und höher einsetzen, können Sie diese Operation online durchführen, so dass andere Sitzungen in Ihrer Tabelle lesen und schreiben können, während die Operation durchgeführt wird:

ALTER TABLE tbl_Country DROP COLUMN IsDeleted, ALGORITHM=INPLACE, LOCK=NONE;

11voto

Lo Juego Punkte 1275

Verwenden Sie ALTER :

ALTER TABLE `tbl_Country` DROP COLUMN `column_name`;

8voto

Sterling Archer Punkte 21308
ALTER TABLE tbl_Country DROP columnName;

3voto

Lukasz Szozda Punkte 137580

Es ist erwähnenswert, dass MySQL 8.0.23 und höher Folgendes unterstützt Unsichtbare Säulen

CREATE TABLE tbl_Country(
  CountryId INT NOT NULL AUTO_INCREMENT,
  IsDeleted bit,
  PRIMARY KEY (CountryId) 
);

INSERT INTO tbl_Country VALUES (1, 1), (2,0);

ALTER TABLE tbl_Country ALTER COLUMN IsDeleted SET INVISIBLE;

SELECT * FROM tbl_Country;
CountryId
1
2

ALTER TABLE tbl_Country DROP COLUMN IsDeleted;

db<>fiddle demo

Dies kann in Szenarien nützlich sein, in denen eine Spalte für eine gewisse Zeit "versteckt" werden muss, bevor sie sicher gelöscht werden kann (z. B. bei der Überarbeitung entsprechender Anwendungen/Berichte usw.).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X