MYSQL表根据列拆分的问题

前言:项目中有这么一个需求,对一张已经成型的表拆分出一张子表,用来保存原来表的大字段的问题。要求子表的一列是主表的主键。

数据库:MYSQL

案例:

   主表:user

   字段:

      

                          图1

   子表:user_copy

   字段:id,zid,password  (user_copy.zid = user.id)

如图:

   主表:

    

              图2

操作:  

  1.复制主表2个字段,id和password,并修改字段id为zid

    

        图3

  2.取消zid自增,不取消会在新主键id继续增加;如图:

    

          图4

    取消zid主键自增后保存;

    在zid前增加id字段,并更改主键和非空。

    

          图5

  在zid字段后加主键首先看上去不太友好,其次我在正式表更改的时候也出现了在原来的主键后递增的情况,类似图4.

原文地址:https://www.cnblogs.com/fastfn/p/9241472.html

时间: 2024-11-05 23:32:04

MYSQL表根据列拆分的问题的相关文章

MySQL 表和列的注释

像代码一样,可以为表以及表中的列添加注释,方便其他人知晓其功能.对于一些字段,在经过一定时间后,创建者未必也能想起其具体的含意,所以注释显得尤为重要. 注释的添加 注释的添加是通过在定义表或列的时候在末尾加上 COMMENT 关键字来实现的,最长支持 1024 个字符. 可以在创建表的时候为表和列添加相应的注释. CREATE TABLE test_comment ( id SERIAL PRIMARY KEY, col1 INT comment '列的注释' ) comment '表的注释';

解决CodeSmith无法获取MySQL表及列Description说明注释的方案

public ExtendedProperty[] GetExtendedProperties(string connectionString, SchemaObjectBase schemaObject) { List<ExtendedProperty> extendedProperties = new List<ExtendedProperty>(); if (schemaObject is ColumnSchema) { ColumnSchema columnSchema =

完美解决CodeSmith无法获取MySQL表及列Description说明注释的方案

全部代码如下: public ExtendedProperty[] GetExtendedProperties(string connectionString, SchemaObjectBase schemaObject) { List<ExtendedProperty> extendedProperties = new List<ExtendedProperty>(); if (schemaObject is ColumnSchema) { ColumnSchema column

快速创建和mysql表对应的java domain实体类

今天创建了一个表有十几个字段,创建完之后必然要写一个与之对应的java domain实体类.这不是重复的工作吗?为什么不先把这个表的所有的字段查出来,然后放到linux环境下,用sed工具在每一行的前面加上"private String ",每一行的后面添加";".这样可以节省很多重复工作.下面上sql代码和sed命令. 查询一个mysql表所有列的列名的sql代码如下: SELECT COLUMN_NAME FROM information_schema.COLU

EF连接Mysql 表&#39;TableDetails&#39;中的列&#39;IsPrimaryKey&#39;的值为DBNull

无法生成模型,因为存在以下异常:'System.Data.StrongTypingException:表'TableDetails'中的列'IsPrimaryKey'的值为DBNull.---> System.InvalidCastException:指定的转换无效. 原文链接http://stackoverflow.com/questions/33575109/mysql-entity-the-value-for-column-isprimarykey-in-table-tabledetail

给MySQL表增加指定位置的列

ALTER TABLE test ADD COLUMN id INT UNSIGNED NOT NULL auto_increment PRIMARY KEY FIRST 给表添加列是一个常用的操作,MySQL增加列的时候可以指定此列的位置 给指定位置加列需要两个关键字: FIRST和AFTER FIRST表示增加此列为第一个列 AFTER表示增加在某个列之后 注意MySQL增加列指定位置时没有BEFORE的用法,第一列可以使用FIRST,非第一列使用AFTER. 语法: ALTER TABLE

MySQL 数据库表的水平拆分

优化数据库结构之数据库表的水平拆分 水平拆分后的每个表结构是相同的,有利于解决单表记录数量过多的问题. 拆分方法: 1 id执行hash运算 如果拆分成5个表,则使用mod(id, 5)取出0-4. 2 根据散列值把数据存到不同的表中. 问题: 1 跨分区表进行数据查询 2 统计及后台报表操作 解决方法: 前后端业务分离,前端查询分区表,后端统计时使用汇总表. 参考资料 数据库表的水平拆分 原文地址:https://www.cnblogs.com/WJQ2017/p/8505535.html

MySQL之按月拆分主表并按月分表写入数据提高数据查询速度

使用场景: 主表数据量特别大,为了提高查询的速度,可以考虑按月进行分表,要求就是当月的数据到当月表查询,上月的数据到上月表查询,当天的数据到主表来查询.这样在一定程度上也是提高了数据的查询速度 过程演示: 1.创建总表: CREATE TABLE `zong_biao` ( `id` int(8) NOT NULL AUTO_INCREMENT, `username` varchar(20) COLLATE utf8_unicode_ci NOT NULL, `password` varchar

[MySQL]--MySQL表中某个列插入数据总被截断,报编码方式的语法错误,实际是column的not null属性和更改编码语法导致的冲突。

MySQL的编码方式中,常用的有gb2312<gbk<utf8. MySQL的编码方式的查看,常用三个参数:character_set_client, character_set_connection ,character_set_result. 查询goods表的列的编码情况: show full columns from goods; 在三个参数一样的情况下,发现goods表中的goods_name的值被截断了,单独插入一行数据的时候,报字符编码错误. 用alter table chang