MySQL ĉu aldoni por pliigi plurajn kampopoziciojn? Detala klarigo pri la uzado de modifi kolumna deklaro

MySQL ŝanĝi aldoni por pliigi plurajn kampopoziciojn? Detala klarigo pri la uzado de modifi kolumna deklaro

MySQL komando ALTER

Kiam ni bezonas modifi la nomon de datumtabelo aŭ modifi la kampojn de datumtabelo, ni devas uzi la komandon MySQL ALTER.

Antaŭ ol komenci ĉi tiun lernilon, ni kreu tabelon nomatan: 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)

Forigu, aldonu aŭ modifi tabelajn kampojn

La sekva komando uzas la komandon ALTER kun la klaŭzo DROP por faligi la i-kolumnon de la supre kreita tabelo:

mysql> ALTER TABLE testalter_tbl  DROP i;

DROP ne povas esti uzata por forigi kampon se restas nur unu kampo en la datumtabelo.

La klaŭzo ADD estas uzata en MySQL por aldoni kolumnojn al la datumtabelo. La sekva ekzemplo aldonas la i-kampon al la tabelo testalter_tbl kaj difinas la datumtipon:

mysql> ALTER TABLE testalter_tbl ADD i INT;

Post ekzekuto de la supra komando, la i-kampo estas aŭtomate aldonita al la fino de la datumtablaj kampoj.

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)

Se vi bezonas specifi la lokon de la nova kampo, vi povas uzi la ŝlosilvorton FIRST provizita de MySQL (aroPoziciigadounua kolumno), POST-kampa nomo (metita post kampo).

Provu la sekvan deklaron ALTER TABLE, kaj post sukcesa ekzekuto, uzu SHOW COLUMNS por vidi la ŝanĝojn en la tabelstrukturo:

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;

La FIRST kaj AFTER-ŝlosilvortoj estas uzataj nur en la klaŭzo ADD, do se vi volas restarigi la pozicion de datuma tabelkampo, vi devas uzi DROP por forigi la kampon kaj poste ADD por aldoni la kampon kaj agordi la pozicion.


Modifi kampospecon kaj nomon

Se vi bezonas modifi la kampan tipon kaj nomon, vi povas uzi la klaŭzon MODIFY aŭ CHANGE en la komando ALTER.

Ekzemple, por ŝanĝi la specon de kampo c de CHAR(1) al CHAR(10), faru la jenan komandon:

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

Kun la klaŭzo CHANGE, la sintakso estas tre malsama.Tuj post la ŝlosilvorto CHANGE estas la nomo de la kampo, kiun vi volas modifi, kaj poste specifu la novan kamponomon kaj tipon.Provu la sekvan ekzemplon:

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

Efiko de ALTER TABLE sur Nulaj kaj Defaŭltaj Valoroj

Kiam vi modifas kampon, vi povas specifi ĉu inkluzivi nur aŭ ĉu agordi defaŭltan valoron.

La sekva ekzemplo precizigas, ke kampo j NE estas NULL kaj la defaŭlta valoro estas 100.

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

Se vi ne agordas defaŭltan valoron, MySQL aŭtomate agordos la kampon al NULL defaŭlte.


Modifi la defaŭltan valoron de kampo

Vi povas uzi ALTER por ŝanĝi la defaŭltan valoron de kampo, provu la jenajn ekzemplojn:

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)

Vi ankaŭ povas uzi la komandon ALTER kun la klaŭzo DROP por forigi la defaŭltan valoron de kampo, kiel en la sekva ekzemplo:

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:

Modifi la tipon de datumtabelo povas esti farita per la komando ALTER kaj la klaŭzo TYPE.Provu la sekvan ekzemplon, kie ni ŝanĝas la tipon de la tabelo testalter_tbl al MYISAM:

Notu:Por vidi la datumtabelan tipon, vi povas uzi la deklaron SHOW TABLE STATUS.

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)

Modifi tabelnomon

Se vi bezonas modifi la nomon de la datumtabelo, vi povas uzi la klaŭzon RENAME en la deklaro ALTER TABLE por fari tion.

Provu la sekvan ekzemplon por renomi la datumtabelon testalter_tbl al alter_tbl:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

La komando ALTER ankaŭ povas esti uzata por krei kaj forigi indeksojn sur MySQL-datumtabloj, kiujn ni enkondukos en la sekvaj ĉapitroj.

ŝanĝi aliajn uzojn

Modifi la stokan motoron: modifi ĝin al myisam

alter table tableName engine=myisam;

Forigi fremdan ŝlosillimon: keyName estas fremdŝlosila kaŝnomo

alter table tableName drop foreign key keyName;

La relativa pozicio de la modifita kampo: ĉi tie nomo1 estas la kampo, kiun vi volas modifi, tipo1 estas la origina tipo de la kampo, kaj vi povas elekti unu el unue kaj post, kio devus esti evidenta, unue estas metita unue, kaj post estas metita post la kampo nomo2

alter table tableName modify name1 type1 first|after name2;

Hope Chen Weiliang Blogo ( https://www.chenweiliang.com/ ) kunhavis "MySQL ŝanĝi aldoni por pliigi plurajn kampopoziciojn? Detala Klarigo pri la Uzado de la Deklaro pri Modifica Kolumno" estas helpema al vi.

Bonvenon dividi la ligon de ĉi tiu artikolo:https://www.chenweiliang.com/cwl-495.html

Bonvenon al la Telegram-kanalo de la blogo de Chen Weiliang por ricevi la plej novajn ĝisdatigojn!

🔔 Estu la unua ricevi la valoran "ChatGPT Content Marketing AI Tool Use Guide" en la ĉefa dosierujo de la kanalo! 🌟
📚 Ĉi tiu gvidilo enhavas grandegan valoron, 🌟Ĉi tio estas malofta ŝanco, ne maltrafu ĝin! ⏰⌛💨
Kunhavigu kaj ŝatu se vi ŝatas!
Via kundivido kaj ŝatoj estas nia kontinua instigo!

 

Lasu komenton

Via retpoŝta adreso ne estos publikigita. Bezonataj kampoj estas uzataj * Etikedo

rulumu al la supro