Artikelgids
MySQL verander voeg om veelvuldige veldposisies by te voeg? Gedetailleerde verduideliking van die gebruik van wysig kolomverklaring
MySQL ALTER-opdrag
Wanneer ons die datatabelnaam moet verander of die datatabelvelde moet wysig, moet ons die MySQL ALTER-opdrag gebruik.
Voordat ons hierdie tutoriaal begin, laat ons eers 'n tabel met die naam: 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)
Vee, voeg by of verander tabelvelde
Die volgende opdrag gebruik die ALTER-opdrag en DROP-klousule om die i-veld van die tabel hierbo geskep te verwyder:
mysql> ALTER TABLE testalter_tbl DROP i;
As daar net een veld in die datatabel oor is, kan DROP nie gebruik word om die veld uit te vee nie.
Die ADD-klousule word in MySQL gebruik om kolomme by die datatabel te voeg. Die volgende voorbeeld voeg die i-veld by die tabel testalter_tbl en definieer die datatipe:
mysql> ALTER TABLE testalter_tbl ADD i INT;
Nadat die bogenoemde opdrag uitgevoer is, sal die i-veld outomaties aan die einde van die datatabelveld gevoeg word.
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)
As jy die ligging van die nuwe veld moet spesifiseer, kan jy die sleutelwoord EERSTE (stelPosisioneringEerste kolom), NA veldnaam (gestel na 'n sekere veld).
Probeer die volgende ALTER TABLE-stelling, en na suksesvolle uitvoering, gebruik WYS KOLOMME om veranderinge in die tabelstruktuur te sien:
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;
Die EERSTE en NA sleutelwoorde word slegs in die ADD-klousule gebruik, so as jy die posisie van 'n datatabelveld wil terugstel, moet jy eers DROP gebruik om die veld uit te vee en dan ADD gebruik om die veld by te voeg en die posisie te stel.
Verander veldtipe en naam
As jy die veldtipe en naam moet wysig, kan jy die MODIFY- of CHANGE-klousule in die ALTER-opdrag gebruik.
Byvoorbeeld, om die tipe veld c van CHAR(1) na CHAR(10) te verander, kan jy die volgende opdrag uitvoer:
mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);
Met die CHANGE-klousule is die sintaksis heel anders. Na die CHANGE-sleutelwoord, volg die veldnaam wat jy wil wysig, en spesifiseer dan die nuwe veldnaam en tipe. Probeer die volgende voorbeeld:
mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
mysql> ALTER TABLE testalter_tbl CHANGE j j INT;
Effekte van ALTER TABLE op nulwaardes en verstekwaardes
Wanneer jy 'n veld wysig, kan jy spesifiseer of jy dit insluit en of jy 'n verstekwaarde moet stel.
In die volgende voorbeeld is die gespesifiseerde veld j NIE NULL nie en die verstekwaarde is 100.
mysql> ALTER TABLE testalter_tbl -> MODIFY j BIGINT NOT NULL DEFAULT 100;
As jy nie 'n verstekwaarde instel nie, sal MySQL outomaties die veld by verstek op NULL stel.
Verander veld verstek waarde
Jy kan ALTER gebruik om die verstekwaarde van 'n veld te verander. Probeer die volgende voorbeeld:
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)
Jy kan ook die ALTER-opdrag en DROP-klousule gebruik om die verstekwaarde van 'n veld te skrap, soos in die volgende voorbeeld getoon:
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:
Om die datatabeltipe te verander, kan jy die ALTER-opdrag en die TYPE-klousule gebruik. Probeer die volgende voorbeeld, ons verander die tipe tabel testalter_tbl na MYISAM:
Let wel:Om die datatabeltipe te sien, kan jy die WYS TABELSTATUS-stelling gebruik.
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)
Verander tabelnaam
As jy die naam van die datatabel moet wysig, kan jy die RENAME-klousule in die ALTER TABLE-stelling gebruik.
Probeer die volgende voorbeeld om die datatabel testalter_tbl na alter_tbl te hernoem:
mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;
Die ALTER-opdrag kan ook gebruik word om indekse op MySQL-datatabelle te skep en uit te vee. Ons sal hierdie funksie in die volgende hoofstuk bekendstel.
ander gebruike te verander
Verander die bergingsenjin: verander dit na myisam
alter table tableName engine=myisam;
Vee vreemde sleutelbeperkings uit: sleutelNaam is 'n vreemde sleutel-alias
alter table tableName drop foreign key keyName;
Verander die relatiewe posisie van die veld: hier is naam1 die veld wat jy wil wysig, tipe1 is die oorspronklike tipe van die veld, kies een van eerste en na, dit moet duidelik wees, eerste word eerste geplaas, en na word geplaas na die naam2 veld
alter table tableName modify name1 type1 first|after name2;
Hoop Chen Weiliang Blog ( https://www.chenweiliang.com/ ) gedeel "MySQL alter voeg by om veelvuldige veldposisies by te voeg?" Gedetailleerde verduideliking van die gebruik van wysig kolomverklaring" sal vir jou nuttig wees.
Welkom om die skakel van hierdie artikel te deel:https://www.chenweiliang.com/cwl-495.html
Welkom by die Telegram-kanaal van Chen Weiliang se blog om die nuutste opdaterings te kry!
📚 Hierdie gids bevat groot waarde, 🌟Dit is 'n seldsame geleentheid, moet dit nie misloop nie! ⏰⌛💨
Share en like as jy wil!
Jou deel en laaiks is ons voortdurende motivering!