MySQL Ännerung addéiere fir verschidde Feldpositiounen ze erhéijen? Detailléiert Erklärung vun der Notzung vun der Ännere Spalterklärung

MySQL änneren addéieren fir méi Feldpositiounen ze addéieren? Detailléiert Erklärung vun der Notzung vun der Ännere Kolonnerklärung

MySQL ALTER Kommando

Wa mir den Datetabellennumm änneren oder d'Datentabellfelder änneren, musse mir de MySQL ALTER Kommando benotzen.

Ier Dir dësen Tutorial starten, loosst eis als éischt eng Tabell erstellen mam Numm: 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)

Läschen, addéieren oder änneren Tabellfelder

De folgende Kommando benotzt den ALTER Kommando an d'DROP Klausel fir den i Feld vun der Tabell hei uewen ze läschen:

mysql> ALTER TABLE testalter_tbl  DROP i;

Wann et nëmmen ee Feld an der Datentabelle lénks ass, kann DROP net benotzt ginn fir d'Feld ze läschen.

D'ADD Klausel gëtt a MySQL benotzt fir Spalten an d'Datentabelle ze addéieren.Déi folgend Beispill füügt den i-Feld un d'Tabelle testalter_tbl an definéiert den Datetyp:

mysql> ALTER TABLE testalter_tbl ADD i INT;

Nodeems Dir de uewe genannte Kommando ausgefouert hutt, gëtt d'i-Feld automatesch um Enn vum Datetabellfeld bäigefüügt.

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)

Wann Dir de Standuert vum neie Feld muss spezifizéieren, kënnt Dir d'Schlësselwuert FIRST (setPositionéierungÉischt Kolonn), NACH Feldnumm (no engem bestëmmte Feld gesat).

Probéiert déi folgend ALTER TABLE Ausso, an no der erfollegräicher Ausféierung benotzt SHOW COLUMNS fir Ännerungen an der Tabellstruktur ze gesinn:

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;

Déi FIRST an AFTER Schlësselwierder ginn nëmmen an der ADD Klausel benotzt, also wann Dir d'Positioun vun engem Datentabellfeld zrécksetzen wëllt, musst Dir als éischt DROP benotzen fir d'Feld ze läschen an dann ADD benotzen fir d'Feld derbäizesetzen an d'Positioun ze setzen.


Änneren Terrain Typ an Numm

Wann Dir de Feldtyp an den Numm änneren musst, kënnt Dir d'MODIFY oder CHANGE Klausel am ALTER Kommando benotzen.

Zum Beispill, fir den Typ vum Feld c vun CHAR (1) op CHAR (10) z'änneren, kënnt Dir de folgende Kommando ausféieren:

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

Mat der CHANGE Klausel ass d'Syntax ganz anescht. Nom CHANGE Schlësselwuert, befollegt de Feldnumm deen Dir wëllt änneren, a gitt dann den neie Feldnumm an Typ. Probéiert dat folgend Beispill:

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

Effekter vun ALTER TABLE op Null Wäerter a Standardwäerter

Wann Dir e Feld ännert, kënnt Dir spezifizéieren ob se et enthalen oder ob e Standardwäert gesat gëtt.

Am folgende Beispill ass de spezifizéierte Feld j NET NULL an de Standardwäert ass 100.

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

Wann Dir kee Standardwäert setzt, wäert MySQL automatesch d'Feld op NULL setzen.


Änneren Feld Default Wäert

Dir kënnt ALTER benotze fir de Standardwäert vun engem Feld z'änneren. Probéiert dat folgend Beispill:

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)

Dir kënnt och den ALTER Kommando an DROP Klausel benotzen fir de Standardwäert vun engem Feld ze läschen, wéi am folgende Beispill gewisen:

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:

Fir den Typ vun Datentabellen z'änneren, kënnt Dir den ALTER Kommando an d'TYPE Klausel benotzen. Probéiert dat folgend Beispill, mir änneren den Typ vun Tabelle testalter_tbl op MYISAM:

Opgepasst:Fir den Typ vun Datentabellen ze gesinn, kënnt Dir d'Show TABLE STATUS Ausso benotzen.

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)

Änneren Dësch Numm

Wann Dir den Numm vun der Datentabelle muss änneren, kënnt Dir d'RENAME Klausel an der ALTER TABLE Ausso benotzen.

Probéiert dat folgend Beispill fir d'Datentabelle testalter_tbl op alter_tbl ëmbenennen:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

Den ALTER Kommando kann och benotzt ginn fir Indexen op MySQL Daten Dëscher ze kreéieren an ze läschen. Mir wäerten dës Funktioun am nächste Kapitel virstellen.

aner Gebrauch änneren

Änneren de Späichermotor: ännert et op myisam

alter table tableName engine=myisam;

Auslännesch Schlësselbeschränkungen läschen: keyName ass en auslännesche Schlësselalias

alter table tableName drop foreign key keyName;

Ännert d'relativ Positioun vum Feld: hei ass den Numm1 de Feld deen Dir ännere wëllt, Typ1 ass den ursprénglechen Typ vum Feld, wielt ee vun den éischten an duerno, dëst soll offensichtlech sinn, éischt gëtt als éischt plazéiert, no gëtt nom Numm plazéiert Feld

alter table tableName modify name1 type1 first|after name2;

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) gedeelt "MySQL alter add to add multiple field positions?" Detailléiert Erklärung iwwer d'Benotzung vun der Ännere Spalterklärung" wäert Iech hëllefräich sinn.

Wëllkomm de Link vun dësem Artikel ze deelen:https://www.chenweiliang.com/cwl-495.html

Wëllkomm op dem Telegram Kanal vum Chen Weiliang säi Blog fir déi lescht Updates ze kréien!

🔔 Gitt deen Éischten dee wäertvollen "ChatGPT Content Marketing AI Tool Usage Guide" am Kanal Top Verzeechnes ze kréien! 🌟
📚 Dëse Guide enthält en enorme Wäert, 🌟 Dëst ass eng selten Geleeënheet, verpasst et net! ⏰⌛💨
Deelen a liken wann dir wëllt!
Är Deelen a Likes sinn eis kontinuéierlech Motivatioun!

 

Comments

Är E-Mail Adress gëtt net verëffentlecht. Néideg Felder gi benotzt * Etikett

scroll no uewen