mysql-修改字段属性(8)

左手的ㄟ右手 2022-05-18 01:38 487阅读 0赞

modify和change关键字修改属性,使用modify和change关键字都可以修改字段属性,可以字段的数据格式类型,以及约束性条件。
但是change和modify也有不同之处的,change可以修改字段名,但是modify不能。下面分别测试一下change和Modify

  1. --修改字段类型,字段属性
  2. alter table table_name modify 字段名称 字段类型 [字段属性] [first | after] --修改字段名称,字段类型,字段属性 alter table table_name change 原字段名称 新字段名称 字段属性[first | after]
  3. mysql> desc test_alter; +-------+------------------+------+-----+---------+----------------+
  4. | Field | Type | Null | Key | Default | Extra | +-------+------------------+------+-----+---------+----------------+
  5. | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(20) | NO | UNI | 小明 | | +-------+------------------+------+-----+---------+----------------+ 2 rows in set (0.00 sec) ----修改字段名name的同时修改varchar最大长度以及删除了默认值 mysql> alter table test_alter change name usrname varchar(30) unique not null;
  6. Query OK, 0 rows affected, 1 warning (0.28 sec)
  7. Records: 0 Duplicates: 0 Warnings: 1
  8. mysql> desc test_alter; +---------+------------------+------+-----+---------+----------------+
  9. | Field | Type | Null | Key | Default | Extra | +---------+------------------+------+-----+---------+----------------+
  10. | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | usrname | varchar(30) | NO | UNI | NULL | | +---------+------------------+------+-----+---------+----------------+ -----可以看到name字段名称改成了usrnamevarchar长度也已经修改,default默认值也删除了。 mysql> create table test_alter( -> id int unsigned auto_increment key,
  11. -> name varchar(30) not null unique)engine=innodb charset=utf8;
  12. Query OK, 0 rows affected (0.01 sec)
  13. mysql> desc test_alter; +-------+------------------+------+-----+---------+----------------+
  14. | Field | Type | Null | Key | Default | Extra | +-------+------------------+------+-----+---------+----------------+
  15. | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(30) | NO | UNI | NULL | | +-------+------------------+------+-----+---------+----------------+ 2 rows in set (0.02 sec) ---使用modify修改varchar数据长度 mysql> alter table test_alter
  16. -> modify name varchar(40) not null unique key;
  17. Query OK, 0 rows affected, 1 warning (0.03 sec)
  18. Records: 0 Duplicates: 0 Warnings: 1
  19. mysql> desc test_alter; +-------+------------------+------+-----+---------+----------------+
  20. | Field | Type | Null | Key | Default | Extra | +-------+------------------+------+-----+---------+----------------+
  21. | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(40) | NO | UNI | NULL | | +-------+------------------+------+-----+---------+----------------+ 2 rows in set (0.00 sec) ----添加两列addr(地址),email(邮箱) mysql> alter table test_alter add addr varchar(30) not null default '北京', add email varchar(40) not null unique default '1122@126.com';
  22. Query OK, 0 rows affected (0.02 sec)
  23. Records: 0 Duplicates: 0 Warnings: 0
  24. mysql> desc test_alter; +-------+------------------+------+-----+--------------+----------------+
  25. | Field | Type | Null | Key | Default | Extra | +-------+------------------+------+-----+--------------+----------------+
  26. | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(40) | NO | UNI | NULL | | | addr | varchar(30) | NO | | 北京 | | | email | varchar(40) | NO | UNI | 1122@126.com | | +-------+------------------+------+-----+--------------+----------------+ 4 rows in set (0.00 sec) --使用Modify关键字同时修改addr字段和email字段的属性以及约束条件,中间采用逗号分隔符. mysql> alter table test_alter modify addr varchar(40) default '深圳', modify email varchar(50) not null unique default '12345@11.com';
  27. Query OK, 0 rows affected, 1 warning (0.02 sec)
  28. Records: 0 Duplicates: 0 Warnings: 1
  29. mysql> desc test_alter; +-------+------------------+------+-----+--------------+----------------+
  30. | Field | Type | Null | Key | Default | Extra | +-------+------------------+------+-----+--------------+----------------+
  31. | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(40) | NO | UNI | NULL | | | addr | varchar(40) | YES | | 深圳 | | | email | varchar(50) | NO | UNI | 12345@11.com | | +-------+------------------+------+-----+--------------+----------------+ 4 rows in set (0.00 sec)

发表评论

表情:
评论列表 (有 0 条评论,487人围观)

还没有评论,来说两句吧...

相关阅读