当前位置:网站首页 > SQL数据库编程 > 正文

mysql主键可以修改吗(mysql修改主键字段)



语法如下:

ALTER TABLE 表名

RENAME TO 新表名

注意:修改表名还可以执行命令:RENAME TABLE 表名 TO 新表名;

例:将mybatis数据库中Register名改为bbs_Register。

代码如下:

 
  

 
  

语法如下:

ALTER TABLE 表名

ADD [COLUMN] 字段名 数据类型 [列级约束] [FIRST|AFTER 字段名]

注意:ADD指向表中添加字段。

字段添加包括三部分:字段名、数据类型和约束,语法和字段定义相同。

(字段定义可查看——MYSQL数据库表的创建(定义字段))

FIRST——将新字段添加到第一列。

AFTER——将新字段添加到指定字段之后。

例:在数据库mybatis的Register中添加自增字段RId,数据类型为整型,取值不重复,并添加到第一列。代码如下:

 
  

语法如下:

ALTER TABLE 表名

DROP [COLUMN] 字段名 

例:删除在数据库mybatis的Register的字段RId。

代码如下:

 
  

1)修改字段名和数据类型属于表结构的修改,语法如下   :

ALTER TABLE 表名

CHANGE [COLUMN] 原字段名 新字段名 新数据类型

注意:关键词CHANGE用于同时修改字段名和数据类型,也可以用来单独修改字段名或者单独修改数据类型。

2)只修改字段名时,字段类型不变,为原来的数据类型,语法如下:

 CHANGE [COLUMN] 原字段名 新字段名 原数据类型

3)只修改数据类型时,字段名不变,语法如下 :

 CHANGE [COLUMN] 原字段名 原字段名 新数据类型

4)修改字段的数据类型除了CHANGE 关键词可以实现,MODIFY关键字也可以实现,语法如下:

ALTER TABLE 表名

MODIFY [COLUMN] 字段名  新数据类型

注意:MODIFY 关键字仅对字段的数据类型进行修改。

1)表中各列位置是可以调整的,修改字段的排列位置属于表结构的修改,语法如下:

ALTER TABLE 表名

CHANGE [COLUMN] 字段名1 字段名1  数据类型 FIRST|AFTER 字段名2

注意:两个字段名1表示不修改原字段名。

FIRST——表示将字段名1对应的字段调整到第一列。

AFTER——字段名2表示将原字段名1对应的字段移动到字段名2对应字段之后。

2)修改字段的排列位置也可以用modify语法如下:

ALTER TABLE 表名

MODIFY [COLUMN] 字段名1   数据类型 FIRST|AFTER 字段名2

例:将mybatis数据库中user表的Score字段放在RDate字段之后。

代码如下:

 
  

1)删除主码约束

语法如下:

ALTER TABLE 表名

DROP PRIMARY KEY;

例:删除mybatis数据库Register(注册表)中的主码约束。

代码如下:

 
  

2)删除外码约束

(外码一旦删除,就会解除父表和子表间的父子关系)

语法如下:

ALTER TABLE 表名 DROP FOREIGN KEY 外码约束名;

例:删除mybatis数据库Register(注册表)中的两个外码约束。

代码如下:

 
  

3)删除唯一约束

语法如下:

ALTER TABLE 表名

DRO INDEX 唯一约束名;

例:删除mybatis数据库Department(系部表)中的唯一性约束。

代码如下:

 
  

Department(系部表)中唯一性约束的名称是系统分配的,而删除唯一性约束需要指定约束名。

查看表中约束名方式:

1.使用MYSQL命令:

SHOW CREATE TABLEDepartment;

2.使用SQL语句:

SELECT constraint_name , constraint_type

FROM information_schema.table_constraints

WHERE table_schema='mybatis' AND table_Name ='Department';

4)删除默认值约束

语法如下:

ALTER TABLE 表名

CHANGE [COLUMN] 原字段名 原字段名  原数据类型 DEFAULT NULL;

或(使用modify语法

ALTER TABLE 表名

MODIFY [COLUMN] 字段名   数据类型 DEFAULT NULL;

例:删除mybatis数据库Course(课程表)中,CLimit(限选人数)字段的默认值约束。

代码如下:

 
  

5)删除非空约束

语法如下:

ALTER TABLE 表名

CHANGE [COLUMN] 原字段名 原字段名  原数据类型 NULL;

ALTER TABLE 表名

MODIFY [COLUMN] 字段名   数据类型  NULL;

例:删除mybatis数据库Course(课程表)中,CName(课程名)字段的非空约束。

代码如下:

 
  

1)添加主键约束

语法如下:

ALTER TABLE 表名

ADD PRIMARY KEY(列名);

例:添加mybatis数据库Register(注册表)中的主码约束。

代码如下:

 
  

2)添加外码约束

语法如下:

ALTER TABLE 表名 

ADD [CONSTRAINT 约束名] FOREIGN KEY (字段名) REFERENCES 父表 (主码字段名)

例:修改mybatis数据库Register(注册表),将字段SId设置为外码,与数据表Student的主键SId进行关联,同时字段CId设置为外码,与数据表Course的主键CId进行关联。

代码如下:

 
  

3)添加唯一约束

语法如下:

ALTER TABLE 表名 

ADD [CONSTRAINT 约束名] UNIQUE(列名);

例:删除mybatis数据库Department(系部表),指定部门名唯一。

代码如下:

 
  

4)添加默认值约束

语法如下:

ALTER TABLE 表名 

CHANGE [COLUMN] 原字段名 原字段名  原数据类型 DEFAULT 默认值;

或(使用modify语法

ALTER TABLE 表名

MODIFY [COLUMN] 字段名   数据类型 DEFAULT 默认值;

5)添加非空约束

语法如下:

ALTER TABLE 表名 

CHANGE [COLUMN] 原字段名 原字段名  原数据类型 NOT NULL;

或(使用modify语法

ALTER TABLE 表名

MODIFY [COLUMN] 字段名   数据类型  NOT NULL;

语法如下:

ALTER TABLE 表名

ENGINE=新的存储引擎类型

语法如下:

ALTER TABLE 表名

DEFAULT CHARSET=新的字符集

语法如下:

ALTER TABLE 表名

PACK_KEYS=新的压缩类型

ALTER TABLE 表名

AUTO_INCREMFNT=新的初始值

到此这篇mysql主键可以修改吗(mysql修改主键字段)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • goldendb数据库是用什么改的(goldendb数据库 mysql)2026-03-28 12:00:07
  • sql循环语句while(sqlserver while循环)2026-03-28 12:00:07
  • mysql主键可以设置为自动增加吗(mysql主键可以设置为自动增加吗对吗)2026-03-28 12:00:07
  • mysql添加主键约束语句(mysql如何添加主键约束)2026-03-28 12:00:07
  • pymysql(Pymysql查询返回的结果)2026-03-28 12:00:07
  • pymysql详解(pymysql pypi)2026-03-28 12:00:07
  • sqlldr导入限定条件(sqlldr只导入指定字段)2026-03-28 12:00:07
  • sql的文件保存在哪里(sql的文件保存在哪里好)2026-03-28 12:00:07
  • mysql中主键可以为空吗(mysql的主键可以是varchar类型吗)2026-03-28 12:00:07
  • sql中写循环(sqlfor循环)2026-03-28 12:00:07
  • 全屏图片