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

数据库添加一列

发布时间: 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时,表数据就会发生重建

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

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

    我们已经解答了这个问题

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

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

  • 热点内容
    安卓怎么调60帧和平精英 发布:2024-11-15 07:28:58 浏览:732
    404跳转php 发布:2024-11-15 07:28:56 浏览:674
    苹果缓存视频在哪里 发布:2024-11-15 07:23:31 浏览:920
    车解压密码 发布:2024-11-15 07:23:30 浏览:86
    linux编译错误 发布:2024-11-15 07:16:14 浏览:540
    水仙花编译题 发布:2024-11-15 07:16:12 浏览:478
    java编译器中文版 发布:2024-11-15 07:11:56 浏览:248
    服务器请求慢怎么排查 发布:2024-11-15 06:55:35 浏览:320
    php自学还是培训 发布:2024-11-15 06:54:05 浏览:183
    在哪里找到sim卡设置密码 发布:2024-11-15 06:51:47 浏览:392