当前位置: 首页 > 面试题库 >

mysql,alter column删除主键并自动增加

栾和玉
2023-03-14
问题内容

我正在将我的mysql db表从id(自动)更改为uid。

ALTER TABLE companies DROP PRIMARY KEY;
ALTER TABLE companies ADD PRIMARY KEY (`uuid`);

这是我得到的错误。

[SQL] ALTER TABLE companies DROP PRIMARY KEY;
[Err] 1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

据我了解,我需要将ID更改为非自动增量,因为我将其作为主键了。更改列以删除主键和自动递增的语法是什么?

ALTER TABLE companies change id id ?????????? int(11)

问题答案:

如果您需要id在单个SQL语句中从列中删除自动增量和主键,则应该这样做:

ALTER TABLE companies DROP PRIMARY KEY, CHANGE id id int(11);

实际上,您应该能够在单个ALTER TABLE查询中完成所有操作:

ALTER TABLE companies
DROP PRIMARY KEY,
CHANGE id id int(11),
ADD PRIMARY KEY (uuid);


 类似资料:
  • 问题内容: 我在使用InnoDB的MySQL中有一个表,其中有一列名为“ id”的列。 所以我的问题是,每当我从表中删除最后一行然后插入新值时,新值都会在删除的ID之后插入。 我的意思是假设我的id是32,我想删除它,然后如果我在删除后插入新行,则列id会自动递增到33。因此序列格式被破坏了,即id = 30,31,33而且不是32。 因此,当我删除最后一列后插入时,请帮我分配ID 32(而不是3

  • 主要内容:指定自增字段初始值,自增字段值不连续在 MySQL 中,当主键定义为自增长后,这个主键的值就不再需要用户输入数据了,而由数据库系统根据定义自动赋值。每增加一条记录,主键会自动以相同的步长进行增长。 通过给字段添加 AUTO_INCREMENT 属性来实现主键自增长。语法格式如下: 字段名 数据类型 AUTO_INCREMENT 默认情况下,AUTO_INCREMENT 的初始值是 1,每新增一条记录,字段值自动加 1。 一个表中只能

  • 问题内容: 是否可以自动增加非主密钥? 表“ book_comments” 该表上将没有其他索引。但是,我想使列自动递增,以便可以轻松创建另一个表: 表格“ book_comments_votes” 用户将只能对每个书评进行一次投票。该表通过主键强制执行此规则。 题: 是否可以自动增加非主键-例如,自动增加表“ book_comments”中的列? 替代方案,讨论: 如上所述,我想这样做是为了简化

  • 问题内容: 我将quartz.net版本从1.0.3升级到2.0.2。有一个用于数据库模式的迁移脚本,该脚本是为MSSQL编写的,并且我正在尝试为其编写MYSQL版本。 但是,我无法删除主键(需要这样做)。 MSSQL的原始脚本版本: 为了简单起见,我正在尝试第一个声明 这是我尝试过的结果: ALTER TABLE BLOB_TRIGGERS DROP PRIMARY KEY; [Err] 102

  • 问题内容: 我有一个带有主键字段且具有AUTO_INCREMENT的MySQL表。在阅读了这里的其他文章后,我发现人们遇到了同样的问题,答案也各不相同。有些人建议不要使用此功能,其他人则说它不能被“修复”。 我有: 示例:表中的记录数:18.如果我删除记录16、17和18-我希望输入的下一条记录的courseID为16,但是由于最后输入的courseID为18,所以它将为19。 我的SQL知识不是

  • 背景 一个自动抽题的小demo,其中mysql中设置id为主键自增长,但是整个程序有删除逻辑 需求 现在有一个需求是实现自动抽题 思路 原本后端的思路如下: 查询题目个数 通过random类实现生成在题目个数范围内随机的Randomid 查询id从而得到相应题目 但是由于整个demo中有删除的功能,在删除后会出现数据库的id与题目个数不一致 请问有什么解决方案吗,或者其他的方案