Artikel Directory
MySQL wijzigen toevoegen om meerdere veldposities te vergroten? Gedetailleerde uitleg van het gebruik van de kolominstructie wijzigen
MySQL ALTER commando
Wanneer we de naam van de gegevenstabel moeten wijzigen of de velden van de gegevenstabel moeten wijzigen, moeten we de opdracht MySQL ALTER gebruiken.
Laten we, voordat we met deze zelfstudie beginnen, een tabel maken met de 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)
Tabelvelden verwijderen, toevoegen of wijzigen
De volgende opdracht gebruikt de ALTER-opdracht met de DROP-clausule om de i-kolom van de hierboven gemaakte tabel te verwijderen:
mysql> ALTER TABLE testalter_tbl DROP i;
DROP kan niet worden gebruikt om een veld te verwijderen als er nog maar één veld over is in de gegevenstabel.
De ADD-component wordt gebruikt in MySQL om kolommen aan de gegevenstabel toe te voegen.Het volgende voorbeeld voegt het veld i toe aan de tabel testalter_tbl en definieert het gegevenstype:
mysql> ALTER TABLE testalter_tbl ADD i INT;
Na het uitvoeren van de bovenstaande opdracht wordt het i-veld automatisch toegevoegd aan het einde van de gegevenstabelvelden.
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)
Als u de locatie van het nieuwe veld moet specificeren, kunt u het trefwoord FIRST gebruiken dat door MySQL wordt geleverd (setPositioneringeerste kolom), NA veldnaam (ingesteld na een veld).
Probeer de volgende ALTER TABLE-instructie en gebruik na een succesvolle uitvoering SHOW COLUMNS om de wijzigingen in de tabelstructuur te zien:
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;
De trefwoorden FIRST en AFTER worden alleen gebruikt in de ADD-clausule, dus als u de positie van een gegevenstabelveld wilt resetten, moet u DROP gebruiken om het veld te verwijderen en vervolgens ADD om het veld toe te voegen en de positie in te stellen.
Veldtype en naam wijzigen
Als u het veldtype en de naam moet wijzigen, kunt u de MODIFY- of CHANGE-clausule in de ALTER-opdracht gebruiken.
Als u bijvoorbeeld het type veld c wilt wijzigen van CHAR(1) in CHAR(10), voert u de volgende opdracht uit:
mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);
Met de clausule CHANGE is de syntaxis heel anders.Direct na het trefwoord CHANGE staat de naam van het veld dat u wilt wijzigen, en specificeer vervolgens de nieuwe veldnaam en het nieuwe type.Probeer het volgende voorbeeld:
mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
mysql> ALTER TABLE testalter_tbl CHANGE j j INT;
Effect van ALTER TABLE op nul- en standaardwaarden
Wanneer u een veld wijzigt, kunt u opgeven of u alleen wilt opnemen of een standaardwaarde wilt instellen.
In het volgende voorbeeld wordt aangegeven dat veld j NOT NULL is en dat de standaardwaarde 100 is.
mysql> ALTER TABLE testalter_tbl -> MODIFY j BIGINT NOT NULL DEFAULT 100;
Als u geen standaardwaarde instelt, stelt MySQL het veld standaard automatisch in op NULL.
Standaardwaarde van veld wijzigen
U kunt ALTER gebruiken om de standaardwaarde van een veld te wijzigen, probeer de volgende voorbeelden:
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)
U kunt ook de opdracht ALTER met de DROP-component gebruiken om de standaardwaarde van een veld te verwijderen, zoals in het volgende voorbeeld:
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:
Het wijzigen van het type gegevenstabel kan worden gedaan met behulp van het ALTER-commando en de TYPE-clausule.Probeer het volgende voorbeeld, waarin we het type van de tabel testalter_tbl wijzigen in MYISAM:
Opmerking:Om het type gegevenstabel te bekijken, kunt u de instructie SHOW TABLE STATUS gebruiken.
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)
tabelnaam wijzigen
Als u de naam van de gegevenstabel moet wijzigen, kunt u hiervoor de RENAME-component in de ALTER TABLE-instructie gebruiken.
Probeer het volgende voorbeeld om de gegevenstabel testalter_tbl te hernoemen naar alter_tbl:
mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;
Het ALTER-commando kan ook worden gebruikt om indexen op MySQL-gegevenstabellen te maken en te verwijderen, die we in de volgende hoofdstukken zullen introduceren.
ander gebruik wijzigen
Wijzig de opslagengine: wijzig deze in myisam
alter table tableName engine=myisam;
Beperking voor externe sleutels verwijderen: sleutelnaam is een alias voor externe sleutels
alter table tableName drop foreign key keyName;
De relatieve positie van het gewijzigde veld: hier is naam1 het veld dat u wilt wijzigen, type1 is het oorspronkelijke type van het veld, en u kunt een van eerst en daarna kiezen, wat duidelijk moet zijn, eerst wordt eerst geplaatst en daarna is geplaatst na het veld naam2
alter table tableName modify name1 type1 first|after name2;
Hoop Chen Weiliang Blog ( https://www.chenweiliang.com/ ) shared "MySQL wijzigen toevoegen om meerdere veldposities te vergroten? Gedetailleerde uitleg van het gebruik van de kolomverklaring wijzigen" is nuttig voor u.
Welkom om de link van dit artikel te delen:https://www.chenweiliang.com/cwl-495.html
Om nog meer verborgen trucs🔑 te ontgrendelen, nodigen we je van harte uit om lid te worden van ons Telegram-kanaal!
Deel en like als je het leuk vindt! Jouw aandelen en likes zijn onze voortdurende motivatie!