mysql 中alter語句中change和modify的區別

mysql 中alter語句中change和modify的區別
modify能修改字段類型和約束,而change不能。
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不用來字段重命名,只能修改字段類型和約束;所以報錯的時候看是否用錯了關鍵字哦

另外一個很容易引起錯誤就是

1、單引號、反單引號分不清

java中鍵值用(‘)單引號,列名(`)反單引號。就是上面一排數字鍵最左邊~符號那個,切換英文輸入法即爲反單引號。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章