Artikkelkatalog
MySQL endre legg til for å øke flere feltposisjoner? Detaljert forklaring på bruken av modify column statement
MySQL ALTER-kommandoen
Når vi trenger å endre datatabellnavnet eller endre datatabellfeltene, må vi bruke MySQL ALTER-kommandoen.
Før du starter denne opplæringen, la oss lage en tabell med navnet: testalter_tbl.
root@host# mysql -u root -p password; Enter password:******* mysql> use chenweiliang; Database changed mysql> create table testalter_tbl -> ( -> i INT, -> c CHAR(1) -> ); Query OK, 0 rows affected (0.05 sec) mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | i | int(11) | YES | | NULL | | | c | char(1) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
Slett, legg til eller endre tabellfelt
Følgende kommando bruker ALTER-kommandoen med DROP-leddet for å slippe i-kolonnen i tabellen opprettet ovenfor:
mysql> ALTER TABLE testalter_tbl DROP i;
DROP kan ikke brukes til å slette et felt hvis det bare er ett felt igjen i datatabellen.
ADD-leddet brukes i MySQL for å legge til kolonner i datatabellen. Følgende eksempel legger til i-feltet til tabellen testalter_tbl og definerer datatypen:
mysql> ALTER TABLE testalter_tbl ADD i INT;
Etter å ha utført kommandoen ovenfor, legges i-feltet automatisk til på slutten av datatabellfeltene.
mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
Hvis du trenger å spesifisere plasseringen av det nye feltet, kan du bruke nøkkelordet FIRST levert av MySQL (settPosisjoneringførste kolonne), ETTER feltnavn (sett etter et felt).
Prøv følgende ALTER TABLE-setning, og etter vellykket kjøring, bruk SHOW COLUMNS for å se endringene i tabellstrukturen:
ALTER TABLE testalter_tbl DROP i; ALTER TABLE testalter_tbl ADD i INT FIRST; ALTER TABLE testalter_tbl DROP i; ALTER TABLE testalter_tbl ADD i INT AFTER c;
FIRST- og AFTER-nøkkelordene brukes bare i ADD-leddet, så hvis du vil tilbakestille posisjonen til et datatabellfelt må du bruke DROP for å fjerne feltet og deretter ADD for å legge til feltet og angi posisjonen.
Endre felttype og navn
Hvis du trenger å endre felttypen og navnet, kan du bruke MODIFY eller CHANGE-leddet i ALTER-kommandoen.
For å endre typen felt c fra CHAR(1) til CHAR(10), kjør følgende kommando:
mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);
Med CHANGE-klausulen er syntaksen veldig forskjellig.Umiddelbart etter CHANGE nøkkelordet er navnet på feltet du vil endre, og spesifiser deretter det nye feltnavnet og typen.Prøv følgende eksempel:
mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
mysql> ALTER TABLE testalter_tbl CHANGE j j INT;
Effekt av ALTER TABLE på null- og standardverdier
Når du endrer et felt, kan du spesifisere om du bare skal inkludere eller om du vil angi en standardverdi.
Følgende eksempel spesifiserer at felt j IKKE er NULL og standardverdien er 100.
mysql> ALTER TABLE testalter_tbl -> MODIFY j BIGINT NOT NULL DEFAULT 100;
Hvis du ikke angir en standardverdi, vil MySQL automatisk sette feltet til NULL som standard.
Endre feltets standardverdi
Du kan bruke ALTER for å endre standardverdien til et felt, prøv følgende eksempler:
mysql> ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000; mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | 1000 | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
Du kan også bruke ALTER-kommandoen med DROP-leddet for å fjerne standardverdien til et felt, som i følgende eksempel:
mysql> ALTER TABLE testalter_tbl ALTER i DROP DEFAULT; mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec) Changing a Table Type:
Endre datatabelltypen kan gjøres ved å bruke ALTER-kommandoen og TYPE-leddet.Prøv følgende eksempel, der vi endrer typen av tabellen testalter_tbl til MYISAM:
Merk:For å vise datatabelltypen kan du bruke SHOW TABLE STATUS-setningen.
mysql> ALTER TABLE testalter_tbl ENGINE = MYISAM; mysql> SHOW TABLE STATUS LIKE 'testalter_tbl'\G *************************** 1. row **************** Name: testalter_tbl Type: MyISAM Row_format: Fixed Rows: 0 Avg_row_length: 0 Data_length: 0 Max_data_length: 25769803775 Index_length: 1024 Data_free: 0 Auto_increment: NULL Create_time: 2007-06-03 08:04:36 Update_time: 2007-06-03 08:04:36 Check_time: NULL Create_options: Comment: 1 row in set (0.00 sec)
Endre tabellnavnet
Hvis du trenger å endre navnet på datatabellen, kan du bruke RENAME-leddet i ALTER TABLE-setningen for å gjøre det.
Prøv følgende eksempel for å gi nytt navn til datatabellen testalter_tbl til alter_tbl:
mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;
ALTER-kommandoen kan også brukes til å opprette og slette indekser på MySQL-datatabeller, som vi vil introdusere i de neste kapitlene.
endre annen bruk
Endre lagringsmotoren: endre den til myisam
alter table tableName engine=myisam;
Fjern fremmednøkkelbegrensning: keyName er et fremmednøkkelalias
alter table tableName drop foreign key keyName;
Den relative plasseringen av det modifiserte feltet: her er navn1 feltet du vil endre, type1 er den opprinnelige typen av feltet, og du kan velge en av først og etter, som skal være tydelig, først plasseres først, og etter er plassert etter navn2-feltet
alter table tableName modify name1 type1 first|after name2;
Hope Chen Weiliang blogg ( https://www.chenweiliang.com/ ) delte "MySQL endre legge til for å øke flere feltposisjoner? Detaljert forklaring av bruken av endringskolonneerklæringen" er nyttig for deg.
Velkommen til å dele lenken til denne artikkelen:https://www.chenweiliang.com/cwl-495.html
Velkommen til Telegram-kanalen til Chen Weiliangs blogg for å få de siste oppdateringene!
📚 Denne guiden inneholder enorm verdi, 🌟Dette er en sjelden mulighet, ikke gå glipp av den! ⏰⌛💨
Del og lik om du vil!
Din deling og likes er vår kontinuerlige motivasjon!