Vraag Wijzig de kolom Verander kolom


Ik weet het, we kunnen een kolom niet hernoemen met modify column syntax,maar kan change column syntax.

Mijn vraag is: wat is het belangrijkste gebruik van modify syntax?

Bijvoorbeeld,

alter table tablename change col1 col1 int(10) not null

in plaats van

alter table tablename modify col1 int(10) not null



bewerkt
Vraag vervangen

Wat is het belangrijkste gebruik van modify syntax?

Bovenstaande vraag werd vervangen door hieronder

Waarom moeten we de kolom wijzigen gebruiken in plaats van de kolom wijzigen?


26
2018-02-08 06:47


oorsprong


antwoorden:


KOLOM VERANDEREN Als u uw MySQL-database al hebt gemaakt en besluit dat een van uw kolommen niet de juiste naam heeft, hoeft u deze niet te verwijderen en een vervanging te maken. U kunt deze eenvoudigweg hernoemen met behulp van kolom wijzigen.

ALTER TABLE MyTable CHANGE COLUMN foo bar VARCHAR(32) NOT NULL FIRST;

WIJZIG KOLOM Deze opdracht doet alles wat CHANGE COLUMN kan, maar zonder de kolom te hernoemen. U kunt de opdracht wijzigen SQL gebruiken als u de grootte van een kolom in MySQL wilt wijzigen. Hiermee kunt u meer of minder tekens dan voorheen toestaan. U kunt een kolom niet hernoemen met wijzigen en andere

ALTER TABLE MyTable MODIFY COLUMN foo VARCHAR(32) NOT NULL AFTER baz;

Opmerking: ALTER TABLE wordt gebruikt om een ​​tabel te wijzigen om kolomnaam, grootte en drop-kolom te wijzigen. CHANGE COLUMN en MODIFY COLUMN-opdrachten kunnen niet worden gebruikt zonder hulp van de opdracht ALTER TABLE.


44
2018-02-08 07:12



Dat is hetzelfde. Het werd gedaan om een ​​andere syntaxis te ondersteunen (Oracle ALTER TABLE zoals ik weet). Je kunt ze allebei gebruiken.

Notitie: ALTER TABLE CHANGE old_col_name new_col_name syntaxis staat het hernoemen van de kolom toe met één commando.


2
2018-02-08 06:57



Ik vond een verschil na meer dan een uur inspanning om een ​​niet-automatische kolom in auto_increment te maken uitspraak: verander de tafel doctor_experience kolom wijzigen id int (11) unsigned auto_increment werkt, maar statment: verander de tafel doctor_experience kolom wijzigen id  id int (11) unsigned auto_increment zal een fout rapporteren.


2
2017-11-21 15:04



Probeer "verander tabel arts_beleving verander kolom id klant_id int (11) niet nul auto_increment;" Ik hoop dat het zal werken.


-2
2017-10-18 08:48