Manampy ny fanovana MySQL hampitomboana toerana maromaro? Fanazavana amin'ny antsipiriany momba ny fampiasana ny fanambarana tsanganana fanovana

MySQL alter add mba hanampiana toerana maromaro? Fanazavana amin'ny antsipiriany momba ny fampiasana ny fanambarana tsanganana fanovana

MySQL ALTER baiko

Rehefa mila manova ny anaran-databatra na manova ny sahan'ny latabatra data isika dia mila mampiasa ny baiko MySQL ALTER.

Alohan'ny hanombohantsika ity lesona ity, andeha isika hamorona latabatra antsoina hoe: 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)

Fafao, ampio na ovao ny saha latabatra

Ity baiko manaraka ity dia mampiasa ny baiko ALTER sy DROP clause mba hamafa ny saha i amin'ny latabatra noforonina etsy ambony:

mysql> ALTER TABLE testalter_tbl  DROP i;

Raha tsy misy afa-tsy saha iray sisa tavela ao amin'ny tabilao data dia tsy azo ampiasaina hamafa ilay saha ny DROP.

Ny clause ADD dia ampiasaina amin'ny MySQL hanampiana tsanganana amin'ny latabatra data. Ity ohatra manaraka ity dia manampy ny saha i amin'ny latabatra testalter_tbl ary mamaritra ny karazana data:

mysql> ALTER TABLE testalter_tbl ADD i INT;

Aorian'ny fanatanterahana ny baiko etsy ambony dia ampidirina ho azy ny saha i amin'ny faran'ny sahan'ny latabatra data.

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)

Raha mila mamaritra ny toerana misy ny saha vaovao ianao dia azonao ampiasaina ny teny fanalahidy FIRST (settoeranyTsanganana voalohany), AFTER anarana saha (apetraka aorian'ny saha iray).

Andramo ity fanambarana ALTER TABLE manaraka ity, ary aorian'ny famonoana mahomby dia ampiasao ny SHOW COLUMNS raha hijery ny fiovana ao amin'ny firafitry ny latabatra:

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;

Ny teny fanalahidy FIRST sy AFTER dia ampiasaina ao amin'ny clause ADD ihany, ka raha te hamerina ny toeran'ny sahan-databatra iray ianao dia mila mampiasa DROP aloha hamafa ny saha ary avy eo dia mampiasa ADD hanampiana ny saha sy hametraka ny toerana.


Ovao ny karazana saha sy ny anarana

Raha mila manova ny karazana saha sy ny anarana ianao dia azonao ampiasaina ny clause MODIFY na CHANGE ao amin'ny baiko ALTER.

Ohatra, raha hanova ny karazana saha c avy amin'ny CHAR (1) ho CHAR (10), azonao atao ny manatanteraka ity baiko manaraka ity:

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

Miaraka amin'ny clause CHANGE, hafa tanteraka ny syntax. Aorian'ny teny fanalahidy CHANGE, araho ny anaran'ny saha tianao ovaina, ary avy eo dia mamaritra ny anarana sy karazana vaovao. Andramo ity ohatra manaraka ity:

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

Ny vokatry ny ALTER TABLE amin'ny soatoavina Null sy ny sanda default

Rehefa manova saha ianao dia azonao atao ny mamaritra raha hampiditra azy io na hametraka sanda mahazatra.

Amin'ity ohatra manaraka ity, ny saha voafaritra j dia TSY NULL ary ny sanda default dia 100.

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

Raha tsy mametraka sanda default ianao, MySQL dia hametraka ho azy ho NULL amin'ny alàlan'ny default.


Ovao ny sandan'ny default an-tsaha

Azonao atao ny mampiasa ALTER hanovana ny sandan'ny saha iray. Andramo ity ohatra manaraka ity:

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)

Azonao atao ihany koa ny mampiasa ny baiko ALTER sy ny DROP clause mba hamafa ny sanda default amin'ny saha iray, araka ny aseho amin'ity ohatra manaraka ity:

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:

Raha hanova ny karazana latabatra data dia azonao ampiasaina ny baiko ALTER sy ny clause TYPE. Andramo ity ohatra manaraka ity, ovainay ho MYISAM ny karazana latabatra testalter_tbl:

Fanamarihana:Raha hijery ny karazana latabatra angona dia azonao ampiasaina ny fanambarana 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)

Ovao ny anaran'ny latabatra

Raha mila manova ny anaran'ny tabilao data ianao dia azonao ampiasaina ny fehezanteny RENAME amin'ny fanambarana ALTER TABLE.

Andramo ity ohatra manaraka ity hanovana anarana ny latabatra data testalter_tbl ho alter_tbl:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

Ny baiko ALTER dia azo ampiasaina hamoronana sy hamafa indexes amin'ny tabilao data MySQL.

manova ny fampiasana hafa

Ovao ny motera fitahirizana: ovao ho myisam

alter table tableName engine=myisam;

Fafao ny teritery fanalahidy vahiny: keyName dia solon'anarana fanalahidy vahiny

alter table tableName drop foreign key keyName;

Ovao ny toerana misy ny saha: eto ny anarana1 dia ny saha tianao ovaina, ny karazana1 dia ny karazana tany am-boalohany, safidio ny iray amin'ny voalohany sy aorian'izay, tokony ho hita miharihary izany, apetraka aloha ny voalohany, aorian'ny anarana2. SaHa

alter table tableName modify name1 type1 first|after name2;

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) nizara "MySQL alter add to add multiple field positions?" Hanampy anao ny fanazavana amin'ny antsipiriany momba ny fampiasana ny fanambarana tsanganana fanovana".

Tongasoa eto mizara ny rohy amin'ity lahatsoratra ity:https://www.chenweiliang.com/cwl-495.html

Tongasoa eto amin'ny fantsona Telegram an'ny bilaogin'i Chen Weiliang hahazoana vaovao farany!

🔔 Aoka ho voalohany hahazo ny "ChatGPT Content Marketing AI Tool Usage Guide" sarobidy ao amin'ny lahatahiry ambony fantsona! 🌟
📚 Ity torolalana ity dia misy sanda lehibe, 🌟Ity dia fotoana tsy fahita firy, aza adino! ⏰⌛💨
Partageo ary j'aime raha tianao!
Ny fizaranao sy ny j'aime no antony manosika anay hatrany!

 

Comments

Ny adiresy mailakao dia tsy havoaka. Ampiasaina ny saha ilaina * Label

horonana mankany ambony