MySql修改主键字段

2023-11-17

一、应用实例:
去除原来的主键字段的主键

ALTER TABLE mdm_customer DROP PRIMARY KEY;

新增字段并设置为主键

ALTER TABLE mdm_customer ADD ID int(32) PRIMARY KEY auto_increment NOT null FIRST;

为原来的主键字段添加索引

CREATE INDEX idx_customer_code USING BTREE ON mdm_customer (customer_code);

二、知识点

1、添加新的字段

ALTER TABLE 表名 ADD COLUMN 待增加的列名 待增加的列的数据类型 待增加的列的其他属性;

如:

ALTER TABLE user ADD COLUMN uuid varchar(20) NOT NULL;
ALTER TABLE user ADD COLUMN openid varchar(32);

2、删除已有字段

ALTER TABLE 表名 DROP COLUMN 待删除的列名;

如:

ALTER TABLE user DROP COLUMN uuid;

3、更改主键
1、去除旧主键(保留该字段)

ALTER TABLE 表名 DROP PRIMARY KEY;

如:

ALTER TABLE user DROP PRIMARY KEY;

2、设置新主键

ALTER TABLE 表名 ADD PRIMARY KEY(要设置为主键的列名);

如:

ALTER TABLE user ADD PRIMARY KEY(uuid);

设置新主键过程遇到的报错
这种做法对于一个还没有数据的表来说可以成功,但是对于已有数据的表而言,会提示错误:ERROR 1062 (23000): Duplicate entry ‘’ for key ‘PRIMARY’。原因是当前这个字段在所有的数据中的值都为‘’(一个空的字符串),即所有数据中这个字段的值是相同的,但设置这个字段为主键时要求这个字段的值不能重复。

**解决方法一:**为表中每条数据的这个字段设置不同的值(如果数据不多,这个步骤可以手动完成),然后再设置这个字段为主键。

**解决方法二:**保存这个表的数据信息(转储成sql文件),然后删除这个表,按照新的结构重新创建表并导入数据。

补充:为字段设置值

UPDATE TABLE 表名 SET 待修改的字段=设置的值;

如:

UPDATE TABLE user SET uuid=1;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySql修改主键字段 的相关文章

  • Laravel 5.4 升级 - 违反完整性约束 - 列不能为空

    奇怪的是 所有这些都在 5 2 中工作 但我不知道可以改变什么来实现这一点 下面是错误和正在插入的数组 SQLSTATE 23000 Integrity constraint violation 1048 Column gender can
  • MySQL Python 关于重复键更新值

    我正在研究使用 python 将 JSON 数据上传到 MySQL 我需要在插入语句中包含 ON DUPLICATE KEY UPDATE VALUES 但在 Python 中遇到了问题 如果我运行以下代码 一切正常 import json
  • MySQL集群启动失败

    这不是我第一次创建ndbcluster 但我没有收到这样的问题 我正在关注本手册 https hub docker com r mysql mysql cluster by mysql团队 我正在使用回显的默认配置在此 GitHub 存储库
  • 猪的组连接等效吗?

    试图在 Pig 上完成这个任务 寻找 MySQL 的 group concat 等效项 例如 在我的表中 我有以下内容 3fields userid clickcount pagenumber 155 2 12 155 3 133 155
  • 如何为我的整个 Node.js 应用程序使用相同的 MySQL 连接?

    我有一个app js 我从那里运行我的整个应用程序 在 app js 内部 我require许多文件中都有代码 对于每个文件 我都这样做 var mysql require mysql var mclient mysql createCon
  • PDO语法错误

    我在一个项目中使用 PDO 但提交时出现语法错误 这是我的代码
  • WHERE NOT EXIST 附近的语法错误

    我在堆栈中搜索 但没有一个达到最终答案 我的查询是这样的 INSERT INTO user username frequence autoSend VALUES feri2 3 1 WHERE NOT EXISTS SELECT FROM
  • mysql-connector-c++ - “get_driver_instance”不是“sql::mysql”的成员

    我是 C 的初学者 我认为学习的唯一方法就是接触一些代码 我正在尝试构建一个连接到 mysql 数据库的程序 我在 Linux 上使用 g 没有想法 我运行 make 这是我的错误 hello cpp 38 error get driver
  • 从 call_log 中获取最大并发通话数

    我需要帮助在 MySQL 5 0 77 中编写一个查询 根据下面所示的数据 办公室一天的通话量 返回并发电话呼叫的峰值数量 我只是想知道一天中任何特定时间同时打电话的人数最多是多少 首先 这是 MySQL 表 CREATE TABLE ca
  • 无法在 Zend Framework 中回滚事务

    我在 Zend Framework 中使用以下代码进行事务 但回滚功能不起作用 数据通过 insertSome data 插入数据库 怎么了 db gt beginTransaction try model gt insertSome da
  • meta_query,如何使用关系 OR 和 AND 进行搜索?

    已解决 请参阅下面的答案 我有一个名为的自定义帖子类型BOOKS 它有几个自定义字段 名称为 TITLE AUTHOR GENRE RATING 我该如何修复我的meta query下面的代码以便仅books在自定义字段中包含搜索词 tit
  • MySQL正则表达式:如何将字符串中的数字与\d匹配?

    我有一个专栏release date它以字符串格式存储日期 不是 DATETIME 格式 因为它们有时可以是任何其他字符串文字 我想根据给定的月份和年份查找任意日期的所有记录 尝试遵循但对我不起作用 gt Post find all con
  • MySQL - 从数字列表中选择在表的 id 字段中没有对应项的数字

    我有一个数字列表 例如 2 4 5 6 7 我有一个表 foos 带有 foos ID 包括 1 2 3 4 8 9 我想获取我的号码列表 并在我的表的 ID 字段中找到那些没有对应项的号码 实现此目的的一种方法是创建一个表格栏 在 ID
  • “修改列”与“更改列”

    我知道 我们不能使用重命名列MODIFY COLUMN语法 但我们可以使用CHANGE COLUMN syntax 我的问题是 主要用途是什么modify syntax 例如 ALATER TABLE tablename CHANGE co
  • 针对约 225 万行的单表选择查询的优化技术?

    我有一个在 InnoDB 引擎上运行的 MySQL 表 名为squares大约有 2 250 000 行 表结构如下 squares square id int 7 unsigned NOT NULL ref coord lat doubl
  • rake db 问题:迁移 -

    我无法为 Ruby on Rails 设置 MySQL 数据库 设置数据库并确保 config database yml 文件匹配后 我遇到了以下错误消息 U Rails alpha gt rake db migrate trace in
  • 防止 Propel 插入空字符串

    当未设置列时 如何防止 Propel ORM 插入空字符串 CREATE TABLE user uid INTEGER PRIMARY KEY AUTO INCREMENT email VARCHAR 255 NOT NULL UNIQUE
  • MYSQL:如何在同一查询中联接两个表,两次引用同一个表

    我有两张桌子 我正在尝试将下面的示例两个表与表 1 引用表 2 两次结合起来 例如 如果我查看表 1 组 2 和成员 7 它应该查找表 2 中的 ID 并给出输出 Group Members Name Name 2 7 Blue Dog T
  • 条件触发器的Django迁移sql

    我想创建一个触发器 仅在满足条件时插入表 我尝试过使用 IF BEGIN END 和 WHERE 的各种组合 但 Django 每次都会返回 SQL 语法错误 这里 type user id指的是触发该事件的人 user id指的是接收到通
  • 使用函数的 SQL 查询 - 如何获取列表的最大计数

    如何查询 MAXIMUM COUNT 交易次数 我的代码如下 SELECT customer id COUNT customer id FROM rental GROUP BY customer id HAVING MAX COUNT cu

随机推荐

  • 数仓体系效率全面提升!同程数科基于 Apache Doris 的数据仓库建设

    应用实践 数仓体系效率全面提升 同程数科基于 Apache Doris 的数据仓库建设 导读 同程数科成立于 2015 年 是同程集团旗下的旅游产业金融服务平台 2020 年 同程数科基于 Apache Doris 丰富的数据接入方式 优异
  • 基于Python的微博舆论分析,微博情感分析可视化系统(V2.0)

    简介 Python基于微博的舆情分析 情感分析可视化系统 微博舆情分析系统 项目后端分爬虫模块 数据分析模块 数据存储模块 业务逻辑模块组成 功能包括 登陆注册 用户管理 热门事件展示 舆情分析 包括舆情分析 情感分类 用户分布 关键词云图
  • 逆向爬虫-sojson混淆反调加密

    文章目录 一 获取sojson代码 二 sojson加密特点和原理 三 过sojson姿势方法 3 1 格式化正则释义 3 2 网页调试过sojson 3 3 静态文件替换过sojson 一 获取sojson代码 JS加密混淆 本次使用代码
  • 阶段性回顾

    阶段笔记 Day01 1 请你简单介绍下软件开发中系统架构的演变 单一应用 gt 垂直拆分 gt 分布式服务 gt 服务治理 SOA gt 微服务架构 2 远程调用的方式有几种 他们的区别如何 如何选择 远程调用有两种方式 RPC Remo
  • 编程每日一题_C程序设计_两整型数据求和

    问题描述 Calculate a b 问题来源https zoj pintia cn problem sets 91827364500 problems Time Limit 2000 ms Memory Limit 65536 KB In
  • HTML5做移动开发一定要搞明白MPA 与 SPA 的差别

    用HTML5做WEB与移动开发一定要搞明白MPA 与 SPA 的差别 刚开始可能会不明白 为什么习惯pc端web app开发 会发现Sencha Touch这样的框架 用起来有点别扭 老在想那熟悉的多页面开发方式 却总也找不到实现的接口 也
  • Mac系统下Flutter安装教程

    一 下载Flutter 1 第一种方式git repo方式 执行下列命令下载最新的flutter代码 系统请先安装Git git clone b beta https github com flutter flutter git 2 第二种
  • 如何解决:ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。

    如何解决 ConnectionRefusedError WinError 10061 由于目标计算机积极拒绝 无法连接 在阅读 Python编程 从入门到实践 17 1 6时遇到了这个问题 项目场景 import requests url
  • spyglass使用教程

    spyglass使用教程 ic 爱好者的博客 CSDN博客
  • vivo手机计算机恢复出厂设置,vivo手机系统恢复出厂设置里面清除所有数据

    哎呀 手机怎么又卡了 完了这局农药又要输了 这个破手机 才用了一年就卡的不要不要的了 是时候要通过恢复出厂设置来解决了 但它真的能让我们的手机变流畅吗 什么是恢复出厂设置 顾名思义 恢复出厂设置就是将手机里所有的设置还原到最开始时的状态 就
  • [网络安全自学篇] 三.Burp Suite安装配置、Proxy基础用法及流量分析示例

    最近开始学习网络安全相关知识 接触了好多新术语 感觉自己要学习的东西太多 真是学无止境 也发现了好几个默默无闻写着博客 做着开源的大神 接下来系统分享一些网络安全的自学笔记 希望读者们喜欢 上一篇文章分享了Chrome浏览器保留密码功能渗透
  • vue的transition动画条上下跳动

    vue部分
  • Dynamics 365 DevOps CI/CD之ConfigurationData

    ConfigurationData如省市区 门店地址这种业务类型的数据 还有系统自定义过程中配置或开发涉及的参数 需要在系统间进行同步 此处CI用到了Power Platform Tool这个工具 这个也是可以在Azure DevOps的商
  • 进度条程序

    package progressbar import java awt BorderLayout import java awt Container import java awt Dimension import java util Ar
  • java中FileReader的使用

    package com test io01 import java io File import java io FileNotFoundException import java io FileReader import java io
  • TTreeNode编程思路

    导读 TTreeNode编程思路 本问以TreeView为例子讲述 其他的用到TTreeNodes的控件的编程思想如出一辙 TreeView由节点构成 建树通过对TreeView items属性进行操作 Items是一个TTreeNodes
  • Redis 配置文件最佳解析

    配置文件 https raw githubusercontent com redis redis 7 0 redis conf 通用模板 引入 include 用于引入其他配置文件 支持使用通配符 根据从上到下的顺序 读取配置项 对同一个配
  • 解决vite首次加载很慢的问题

    目录 vite很快吗 为什么说vite快 为什么说vite慢 解决方案 附加 vite很快吗 vite要比webpack快 是的 真的很快 但个人感受 默认情况下 vite项目的启动确实比webpack快 但如果某个界面是首次进入 且依赖比
  • LaTex希腊字母大全

    小写字母 LaTex指令 大写字母 LaTex指令 alpha alpha A A
  • MySql修改主键字段

    一 应用实例 去除原来的主键字段的主键 ALTER TABLE mdm customer DROP PRIMARY KEY 新增字段并设置为主键 ALTER TABLE mdm customer ADD ID int 32 PRIMARY