Een kolom verwijderen uit een tabel in MySQL

Gezien de tabel die is gemaakt met:

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

Hoe kan ik de kolom IsDeletedverwijderen?


Antwoord 1, autoriteit 100%

ALTER TABLE tbl_Country DROP COLUMN IsDeleted;

Hier iseen werkend voorbeeld.

Houd er rekening mee dat het trefwoord COLUMNoptioneel is, aangezien MySQL alleen DROP IsDeletedaccepteert. Als u meerdere kolommen wilt verwijderen, moet u ze scheiden door komma’s en de DROPvoor elke kolom opnemen.

ALTER TABLE tbl_Country
  DROP COLUMN IsDeleted,
  DROP COLUMN CountryName;

Hiermee kunt u meerdere kolommen in dezelfde tabel in één instructie DROP, ADDen ALTER. Uit de MySQL-referentiehandleiding:

U kunt meerdere ADD-, ALTER-, DROP– en CHANGE-clausules in één ALTER TABLE-instructie, gescheiden door komma’s. Dit is een MySQL-extensie voor standaard SQL, die slechts één van elke clausule per ALTER TABLE-instructie toestaat.


Antwoord 2, autoriteit 13%

Gebruik ALTER TABLEmet DROP COLUMNom een kolom uit een tabel te verwijderen en CHANGEof MODIFYom een kolom te wijzigen.

ALTER TABLE tbl_Country DROP COLUMN IsDeleted;
ALTER TABLE tbl_Country MODIFY IsDeleted tinyint(1) NOT NULL;
ALTER TABLE tbl_Country CHANGE IsDeleted IsDeleted tinyint(1) NOT NULL;

Antwoord 3, Autoriteit 4%

Om kolom te verwijderen, gebruikt u dit,

ALTER TABLE `tbl_Country` DROP `your_col`

Antwoord 4, Autoriteit 2%

U kunt

gebruiken

alter table <tblname> drop column <colname>

Antwoord 5, Autoriteit 2%

ALTER TABLE `tablename` DROP `columnname`;

of,

ALTER TABLE `tablename` DROP COLUMN `columnname`;

Antwoord 6, Autoriteit 2%

Als u MySQL 5.6 uitvoert, kunt u deze operatie online maken, zodat andere sessies kunnen lezen en schrijven naar uw tabel terwijl de bewerking is uitgevoerd:

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

Antwoord 7

Gebruik ALTER:

ALTER TABLE `tbl_Country` DROP COLUMN `column_name`;

Antwoord 8

ALTER TABLE tbl_Country DROP columnName;

Antwoord 9

Het is de moeite waard om te vermelden dat MySQL 8.0.23 en hoger ondersteunt onzichtbare kolommen

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

Het kan handig zijn in scenario’s waarin het nodig is om een kolom een tijdje te “verbergen” voordat deze veilig kan worden verwijderd (zoals het opnieuw bewerken van overeenkomstige applicaties/rapporten enz.).

Other episodes