modify與change的區別


 對mysql的表的表結構進行修改時,有用到change,modify兩個,它們都有“改變”的意思,那它們在功能上有什么區別了?做個試驗比較下

 

1、字段重命名:

1)change

mysql> alter table t1 change number id char(2);

Query OK, 0 rows affected (0.08 sec)

Records: 0  Duplicates: 0  Warnings: 0

 

2)modify

mysql> alter table t1 modify id num int(2);

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'num int(2)' at line 1

mysql>

結論:能用change重命名,而modify不能。

 

2、修改字段類型和約束

1)modify

mysql> alter table t1 modify id int(2);

Query OK, 0 rows affected (0.06 sec)

Records: 0  Duplicates: 0  Warnings: 0

 

mysql> alter table t1 modify id int(2) not null;

Query OK, 0 rows affected (0.08 sec)

Records: 0  Duplicates: 0  Warnings: 0

 

2)change

 

mysql> alter table t1 change id char(2);

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'char(2)' at line 1

 

 

mysql> alter table t1 change id char(2) not null;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'char(2) not null' at line 1

 

結論:modify能修改字段類型和約束,而change不能。

 

最終結論:change用來字段重命名,不能修改字段類型和約束;

         modify不用來字段重命名,只能修改字段類型和約束;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM