MySQL ändra lägga till för att öka flera fältpositioner? Detaljerad förklaring av användningen av modifiera kolumnsatsen

MySQL ändra lägga till för att öka flera fältpositioner? Detaljerad förklaring av användningen av modifiera kolumnsatsen

MySQL ALTER-kommandot

När vi behöver ändra datatabellens namn eller modifiera datatabellsfälten måste vi använda kommandot MySQL ALTER.

Innan vi börjar den här handledningen, låt oss skapa en tabell med namnet: 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)

Ta bort, lägg till eller ändra tabellfält

Följande kommando använder kommandot ALTER med DROP-satsen för att ta bort i-kolumnen i tabellen som skapats ovan:

mysql> ALTER TABLE testalter_tbl  DROP i;

DROP kan inte användas för att radera ett fält om det bara finns ett fält kvar i datatabellen.

ADD-satsen används i MySQL för att lägga till kolumner i datatabellen. Följande exempel lägger till i-fältet i tabellen testalter_tbl och definierar datatypen:

mysql> ALTER TABLE testalter_tbl ADD i INT;

Efter att ha utfört kommandot ovan läggs i-fältet automatiskt till i slutet av datatabellfälten.

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)

Om du behöver ange platsen för det nya fältet kan du använda nyckelordet FIRST som tillhandahålls av MySQL (setPositioneringförsta kolumnen), EFTER fältnamn (ställt efter ett fält).

Prova följande ALTER TABLE-sats, och efter framgångsrik körning, använd SHOW COLUMNS för att se ändringarna 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;

Nyckelorden FIRST och AFTER används bara i ADD-satsen, så om du vill återställa positionen för ett datatabellfält måste du använda DROP för att ta bort fältet och sedan ADD för att lägga till fältet och ställa in positionen.


Ändra fälttyp och namn

Om du behöver ändra fälttypen och namnet kan du använda satsen MODIFY eller CHANGE i kommandot ALTER.

Till exempel, för att ändra typen av fält c från CHAR(1) till CHAR(10), kör följande kommando:

mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);

Med CHANGE-satsen är syntaxen väldigt annorlunda.Omedelbart efter nyckelordet CHANGE finns namnet på fältet du vill ändra, och ange sedan det nya fältnamnet och -typen.Prova följande exempel:

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

Effekt av ALTER TABLE på noll- och standardvärden

När du ändrar ett fält kan du ange om endast ska inkluderas eller om ett standardvärde ska anges.

Följande exempel anger att fält j INTE är NULL och standardvärdet är 100.

mysql> ALTER TABLE testalter_tbl 
    -> MODIFY j BIGINT NOT NULL DEFAULT 100;

Om du inte anger ett standardvärde kommer MySQL automatiskt att ställa in fältet till NULL som standard.


Ändra fältets standardvärde

Du kan använda ALTER för att ändra standardvärdet för ett fält, prova följande exempel:

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 också använda kommandot ALTER med DROP-satsen för att ta bort standardvärdet för ett fält, som i följande exempel:

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:

Ändring av datatabelltypen kan göras med kommandot ALTER och TYPE-satsen.Prova följande exempel, där vi ändrar typen av tabellen testalter_tbl till MYISAM:

Anmärkning:För att visa datatabelltypen kan du använda SHOW TABLE STATUS-satsen.

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)

Ändra tabellnamn

Om du behöver ändra namnet på datatabellen kan du använda RENAME-satsen i ALTER TABLE-satsen för att göra det.

Försök med följande exempel för att byta namn på datatabellen testalter_tbl till alter_tbl:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

ALTER-kommandot kan också användas för att skapa och ta bort index på MySQL-datatabeller, som vi kommer att introducera i nästa kapitel.

ändra annan användning

Ändra lagringsmotorn: ändra den till myisam

alter table tableName engine=myisam;

Ta bort begränsning av främmande nyckel: keyName är ett alias för främmande nyckel

alter table tableName drop foreign key keyName;

Den relativa positionen för det modifierade fältet: här är namn1 fältet du vill ändra, typ1 är den ursprungliga typen av fältet, och du kan välja en av först och efter, vilket ska vara uppenbart, först placeras först och efter är placeras efter namn2-fältet

alter table tableName modify name1 type1 first|after name2;

Hope Chen Weiliang blogg ( https://www.chenweiliang.com/ ) delade "MySQL ändra lägga till för att öka flera fältpositioner? Detaljerad förklaring av användningen av ändringskolumnen" är till hjälp för dig.

Välkommen att dela länken till denna artikel:https://www.chenweiliang.com/cwl-495.html

Välkommen till Telegram-kanalen på Chen Weiliangs blogg för att få de senaste uppdateringarna!

🔔 Bli först med att få den värdefulla "ChatGPT Content Marketing AI Tool Usage Guide" i kanalens toppkatalog! 🌟
📚 Den här guiden innehåller ett enormt värde, 🌟Detta är ett sällsynt tillfälle, missa inte det! ⏰⌛💨
Dela och gilla om du vill!
Dina delning och likes är vår ständiga motivation!

 

发表 评论

Din e-postadress kommer inte att publiceras. 必填 项 已 用 * 标注

scrolla till toppen