MySQL-ը փոխե՞լ ավելացնել դաշտի բազմաթիվ դիրքերը մեծացնելու համար: Փոփոխել սյունակի հայտարարության օգտագործման մանրամասն բացատրությունը

MySQL Փոխե՞լ ավելացնել դաշտի բազմաթիվ դիրքերը մեծացնելու համար: Փոփոխել սյունակի հայտարարության օգտագործման մանրամասն բացատրությունը

MySQL ALTER հրամանը

Երբ մենք պետք է փոփոխենք տվյալների աղյուսակի անունը կամ փոփոխենք տվյալների աղյուսակի դաշտերը, մենք պետք է օգտագործենք MySQL ALTER հրամանը:

Նախքան այս ձեռնարկը սկսելը, եկեք ստեղծենք աղյուսակ՝ 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)

Ջնջել, ավելացնել կամ փոփոխել աղյուսակի դաշտերը

Հետևյալ հրամանը օգտագործում է ALTER հրամանը DROP կետով՝ վերևում ստեղծված աղյուսակի i սյունակը թողնելու համար.

mysql> ALTER TABLE testalter_tbl  DROP i;

DROP-ը չի կարող օգտագործվել դաշտը ջնջելու համար, եթե տվյալների աղյուսակում մնացել է միայն մեկ դաշտ:

ADD դրույթն օգտագործվում է MySQL-ում՝ տվյալների աղյուսակում սյունակներ ավելացնելու համար: Հետևյալ օրինակը i դաշտն ավելացնում է testalter_tbl աղյուսակում և սահմանում տվյալների տեսակը.

mysql> ALTER TABLE testalter_tbl ADD i INT;

Վերոնշյալ հրամանը կատարելուց հետո i դաշտը ավտոմատ կերպով ավելացվում է տվյալների աղյուսակի դաշտերի վերջում։

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)

Եթե ​​Ձեզ անհրաժեշտ է նշել նոր դաշտի գտնվելու վայրը, կարող եք օգտագործել MySQL-ի կողմից տրամադրված ԱՌԱՋԻՆ հիմնաբառը (սահմանվածԴիրքավորումառաջին սյունակ), AFTER դաշտի անվանումից հետո (սահմանված է դաշտից հետո):

Փորձեք հետևյալ ALTER TABLE հայտարարությունը և հաջող գործարկումից հետո օգտագործեք SHOW COLUMNS՝ աղյուսակի կառուցվածքի փոփոխությունները դիտելու համար.

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;

ԱՌԱՋԻՆ և ՀԵՏՈ հիմնաբառերը օգտագործվում են միայն ADD կետում, այնպես որ, եթե ցանկանում եք վերականգնել տվյալների աղյուսակի դաշտի դիրքը, նախ պետք է օգտագործեք DROP դաշտը ջնջելու համար, այնուհետև օգտագործեք ADD դաշտը ավելացնելու և դիրքը սահմանելու համար:


Փոփոխել դաշտի տեսակը և անունը

Եթե ​​Ձեզ անհրաժեշտ է փոփոխել դաշտի տեսակը և անունը, կարող եք օգտագործել ՓՈՓՈԽԵԼ կամ ՓՈԽՈՂԵԼ դրույթը ALTER հրամանում:

Օրինակ՝ c դաշտի տեսակը CHAR(1)-ից CHAR(10) փոխելու համար կատարեք հետևյալ հրամանը.

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

CHANGE դրույթով շարահյուսությունը շատ տարբեր է:CHANGE բանալի բառից անմիջապես հետո դաշտի անվանումն է, որը ցանկանում եք փոփոխել, այնուհետև նշեք նոր դաշտի անվանումը և տեսակը:Փորձեք հետևյալ օրինակը.

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

ALTER TABLE-ի ազդեցությունը զրոյական և լռելյայն արժեքների վրա

Երբ դուք փոփոխում եք դաշտը, կարող եք նշել՝ ներառել միայն կամ սահմանել լռելյայն արժեք:

Հետևյալ օրինակը նշում է, որ j դաշտը NOT NULL է, իսկ լռելյայն արժեքը 100 է:

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

Եթե ​​դուք չեք սահմանել լռելյայն արժեք, MySQL-ն ավտոմատ կերպով դաշտը կսահմանի որպես լռելյայն NULL:


Փոփոխել դաշտի լռելյայն արժեքը

Դուք կարող եք օգտագործել ALTER-ը դաշտի լռելյայն արժեքը փոխելու համար, փորձեք հետևյալ օրինակները.

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)

Դուք կարող եք նաև օգտագործել ALTER հրամանը DROP կետով հեռացնելու համար դաշտի լռելյայն արժեքը, ինչպես հետևյալ օրինակում.

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:

Տվյալների աղյուսակի տիպի փոփոխությունը կարող է կատարվել օգտագործելով ALTER հրամանը և TYPE կետը:Փորձեք հետևյալ օրինակը, որտեղ մենք փոխում ենք testalter_tbl աղյուսակի տեսակը MYISAM-ի.

注意:Տվյալների աղյուսակի տեսակը դիտելու համար կարող եք օգտագործել 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)

Փոփոխել աղյուսակի անունը

Եթե ​​Ձեզ անհրաժեշտ է փոփոխել տվյալների աղյուսակի անվանումը, դա անելու համար կարող եք օգտագործել RENAME կետը ALTER TABLE հայտարարության մեջ:

Փորձեք հետևյալ օրինակը՝ testalter_tbl տվյալների աղյուսակը alter_tbl վերանվանելու համար.

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

ALTER հրամանը կարող է օգտագործվել նաև MySQL աղյուսակներում ինդեքսներ ստեղծելու և ջնջելու համար, որոնց կանդրադառնանք հաջորդ գլուխներում:

փոխել այլ կիրառությունները

Փոփոխեք պահեստավորման շարժիչը. փոխեք այն myisam-ի

alter table tableName engine=myisam;

Հեռացնել օտարերկրյա բանալիների սահմանափակումը. keyName-ը օտար բանալու այլանուն է

alter table tableName drop foreign key keyName;

Փոփոխված դաշտի հարաբերական դիրքը. այստեղ name1-ը փոփոխման ենթակա դաշտն է, type1-ը դաշտի բնօրինակ տեսակն է, կարելի է ընտրել առաջինը և հետո, որը պետք է ակնհայտ լինի, առաջինը տեղադրվի առաջինը, իսկ հետո տեղադրվի անուն2-ից հետո: դաշտ

alter table tableName modify name1 type1 first|after name2;

Հույս Chen Weiliang բլոգ ( https://www.chenweiliang.com/ ) կիսվել է «MySQL-ը փոխե՞լ ավելացնել դաշտի բազմաթիվ դիրքերը մեծացնելու համար: Փոփոխել սյունակի հայտարարության օգտագործման մանրամասն բացատրությունը» օգտակար է ձեզ համար:

Բարի գալուստ՝ կիսելու այս հոդվածի հղումը.https://www.chenweiliang.com/cwl-495.html

Ավելի շատ թաքնված հնարքներ բացահայտելու համար🔑, միացեք մեր Telegram ալիքին։

Տարածեք և հավանեք, եթե ձեզ դուր եկավ: Ձեր կիսումներն ու հավանումները մեր շարունակական շարժառիթն են:

 

发表 评论

Ձեր էլփոստի հասցեն չի հրապարակվի: Օգտագործվում են պահանջվող դաշտերը * Պիտակ

Ոլորել դեպի սկիզբ