Հոդվածների տեղեկատու
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 ալիքին։
Տարածեք և հավանեք, եթե ձեզ դուր եկավ: Ձեր կիսումներն ու հավանումները մեր շարունակական շարժառիթն են: