当前位置:首页 » 操作系统 » 数据库添加一列

数据库添加一列

发布时间: 2024-11-15 02:24:09

1. sql怎么在数据库中插入一列数据

sql语句

alter table [tableName] add [columnName] [dataType]

tableName :这个替换为你需要修改的表名

columnName :你需要添加的字段名
dataType:该字段对应的数据类型

2. MySQL 数据库如何添加列

传统情况

我们先回顾一下,在没有 "立刻加列" 功能时,加列操作是怎么完成的。我们也借此来熟悉一下本期的图例:

扩展思考题:是否能设计其他的数据格式,取代instant标志位和"列数"字段,使得 加列/删列 操作都能 "立刻完成" ?(提示:考虑 加列- 删列- 再加列 的情况)

使用限制

在了解原理之后,我们来看看"立刻加列"的使用限制,就很容易能理解其中的前两项:

  • "立刻加列"的加列位置只能在表的最后,而不能加在其他列之间
    在元数据中,只记录了 数据行 应有多少列,而没有记录 这些列 应出现的位置。所以无法实现指定列的位置

  • "立刻加列"不能添加主键列
    加列 不能涉及聚簇索引的变更,否则就变成了 "重建" 操作,不是 "立刻" 完成了

  • "立刻加列"不支持压缩的表格式
    按照 WL 的说法:"COMPRESSED is no need to supported"(没必要支持不怎么用的格式)

  • 总结回顾

    我们总结一下上面的讨论:

  • "立刻加列" 之所以高效的原因是:

  • 在执行 "立刻加列" 时,不变更数据行的结构

  • 读取 "旧" 数据时,"伪造"新增的列,使结果正确

  • 写入 "新" 数据时,使用了新的数据格式(增加了instant 标志位和 "列数" 字段),以区分新旧数据

  • 读取 "新" 数据时,可以如实读取数据

  • "立刻加列"的 "伪造" 手法,不能一直维持下去。当发生与 "立刻加列" 操作不兼容的 DDL时,表数据就会发生重建

  • 回到之前遗留的两个问题:

  • "立刻加列" 是如何工作的 ?

    我们已经解答了这个问题

  • 所谓 "立刻加列" 是否完全不影响业务,是否是真正的 "立刻" 完成 ?

    可以看到:就算是 "立刻加列",也需要变更 数据字典,那么 该上的锁还是逃不掉的。也就是说 这里的 "立刻" 指的是 "不变更数据行的结构",而并非指 "零成本地完成任务"

  • 热点内容
    iismysqlphp配置 发布:2024-12-26 13:19:47 浏览:181
    安卓手机浏览器看视频在哪里删 发布:2024-12-26 13:17:23 浏览:414
    苹果手机ld密码忘了怎么办 发布:2024-12-26 13:16:08 浏览:297
    怎么把小程序源代码放在服务器 发布:2024-12-26 13:06:18 浏览:244
    java的byte转string 发布:2024-12-26 13:04:43 浏览:926
    源码带支付接口 发布:2024-12-26 12:36:29 浏览:637
    我的世界服务器公告栏内容怎么改 发布:2024-12-26 12:35:53 浏览:158
    python的类方法 发布:2024-12-26 12:31:12 浏览:360
    编译器c语言输入不了中文 发布:2024-12-26 12:21:05 浏览:43
    配电脑用什么配置 发布:2024-12-26 12:21:05 浏览:286