Straipsnių katalogas
MySQL pakeisti pridėti, kad padidintumėte kelias lauko pozicijas? Išsamus stulpelio modifikavimo teiginio naudojimo paaiškinimas
MySQL komanda ALTER
Kai mums reikia modifikuoti duomenų lentelės pavadinimą arba modifikuoti duomenų lentelės laukus, turime naudoti komandą MySQL ALTER.
Prieš pradėdami šią mokymo programą, sukurkime lentelę pavadinimu: 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)
Ištrinkite, pridėkite arba keiskite lentelės laukus
Ši komanda naudoja komandą ALTER su sąlyga DROP, kad būtų pašalintas aukščiau sukurtos lentelės stulpelis i:
mysql> ALTER TABLE testalter_tbl DROP i;
DROP negalima naudoti norint ištrinti lauką, jei duomenų lentelėje liko tik vienas laukas.
ADD sąlyga naudojama MySQL stulpeliams įtraukti į duomenų lentelę. Šis pavyzdys prideda i lauką prie lentelės testalter_tbl ir apibrėžia duomenų tipą:
mysql> ALTER TABLE testalter_tbl ADD i INT;
Įvykdžius aukščiau pateiktą komandą, i laukas automatiškai įtraukiamas į duomenų lentelės laukų pabaigą.
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)
Jei reikia nurodyti naujo lauko vietą, galite naudoti MySQL pateiktą raktinį žodį FIRST (setPadėties nustatymaspirmas stulpelis), AFTER lauko pavadinimas (nustatytas po lauko).
Išbandykite šį ALTER TABLE teiginį ir sėkmingai įvykdę naudokite SHOW COLUMNS, kad peržiūrėtumėte lentelės struktūros pakeitimus:
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;
Raktiniai žodžiai FIRST ir AFTER naudojami tik sąlygoje ADD, taigi, jei norite iš naujo nustatyti duomenų lentelės lauko padėtį, turite naudoti DROP, kad ištrintumėte lauką, o tada naudokite ADD, kad pridėtumėte lauką ir nustatytumėte poziciją.
Pakeiskite lauko tipą ir pavadinimą
Jei reikia pakeisti lauko tipą ir pavadinimą, komandoje ALTER galite naudoti sąlygą MODIFY arba CHANGE.
Pavyzdžiui, norėdami pakeisti lauko c tipą iš CHAR(1) į CHAR(10), vykdykite šią komandą:
mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);
Su sąlyga CHANGE sintaksė labai skiriasi.Iš karto po raktinio žodžio CHANGE yra lauko, kurį norite keisti, pavadinimas, tada nurodykite naują lauko pavadinimą ir tipą.Išbandykite šį pavyzdį:
mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
mysql> ALTER TABLE testalter_tbl CHANGE j j INT;
ALTER TABLE poveikis nulinėms ir numatytosioms reikšmėms
Kai modifikuojate lauką, galite nurodyti, ar įtraukti tik, ar nustatyti numatytąją reikšmę.
Toliau pateiktame pavyzdyje nurodoma, kad laukas j NĖRA NULLIS, o numatytoji reikšmė yra 100.
mysql> ALTER TABLE testalter_tbl -> MODIFY j BIGINT NOT NULL DEFAULT 100;
Jei nenustatote numatytosios reikšmės, pagal numatytuosius nustatymus „MySQL“ automatiškai nustatys lauką į NULL.
Keisti lauko numatytąją vertę
Galite naudoti ALTER norėdami pakeisti numatytąją lauko reikšmę, išbandykite šiuos pavyzdžius:
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)
Taip pat galite naudoti komandą ALTER su sąlyga DROP, kad pašalintumėte numatytąją lauko reikšmę, kaip parodyta šiame pavyzdyje:
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:
Modifikuoti duomenų lentelės tipą galima naudojant komandą ALTER ir TYPE sąlygą.Išbandykite šį pavyzdį, kuriame keičiame lentelės testalter_tbl tipą į MYISAM:
Pastaba:Norėdami peržiūrėti duomenų lentelės tipą, galite naudoti teiginį 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)
Pakeiskite lentelės pavadinimą
Jei reikia modifikuoti duomenų lentelės pavadinimą, galite naudoti sakinį RENAME sakinyje ALTER TABLE.
Išbandykite šį pavyzdį, kad pervadintumėte duomenų lentelę testalter_tbl į alter_tbl:
mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;
Komanda ALTER taip pat gali būti naudojama indeksams kurti ir ištrinti MySQL duomenų lentelėse, kurias pristatysime kituose skyriuose.
pakeisti kitus naudojimo būdus
Modifikuokite saugojimo variklį: pakeiskite jį į myisam
alter table tableName engine=myisam;
Pašalinkite išorinio rakto apribojimą: „keyName“ yra svetimo rakto slapyvardis
alter table tableName drop foreign key keyName;
Santykinė modifikuoto lauko padėtis: čia vardas1 yra laukas, kurį norite modifikuoti, tipas1 yra pradinis lauko tipas, ir jūs galite pasirinkti vieną iš pirmų ir po jų, kurie turėtų būti akivaizdūs, pirmas dedamas pirmas, o po jo dedamas po vardo2 lauko
alter table tableName modify name1 type1 first|after name2;
Hope Chen Weiliang tinklaraštis ( https://www.chenweiliang.com/ ) pasidalino "MySQL alter pridėti, kad padidintumėte kelias lauko pozicijas? Išsamus stulpelio keitimo pareiškimo naudojimo paaiškinimas“ yra jums naudingas.
Kviečiame pasidalinti šio straipsnio nuoroda:https://www.chenweiliang.com/cwl-495.html
Sveiki atvykę į Chen Weiliang tinklaraščio Telegram kanalą, kad gautumėte naujausius atnaujinimus!
📚 Šis vadovas turi didžiulę vertę, 🌟Tai reta galimybė, nepraleiskite jos! ⏰⌛💨
Dalinkitės ir like jei patiko!
Jūsų dalijimasis ir paspaudimai „Patinka“ yra mūsų nuolatinė motyvacija!