如何增加一列

为数据库里面的一张表写一个新增字段的SQL语句,大家都会,在表的数据量不大的情况下,这个通常没有任何问题。当你表的数据量达到1KW级的时候,问题就出来。

(一) 数据表添加字段的过程

我们来看看数据库里面是内部增加字段的过程。

(1) 创建一张临时表,表的结构和原来的table一致。

(2) 在临时表上增加新增的字段

(3)将原table表里面的数据复制到临时表中,

(4)将原table删除

(5) 将临时表重命名原来的表名称。

(二)实践

我们知道了为大数据表增加一列的时候,会做这么多操作,会产生大量的事务日志,会进行锁表,那我们可以自己来模拟这个过程。

(1) 创建一张临时表,表的结构和原理的table一致。

最简单的做法 ① 右键,脚本,生成create table脚本 ② CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2

(2) 在临时表中增加新的字段   alter table article add  test nvarchar(20)

(3) 将原来的表赋值给临时表,insert into(xx,xx1,xx2) select xx,xx1,xx2 from table

(4) 删除原来的表。drop table xx

(5) 将临时表,重命名为原来的表。

原文地址:https://www.cnblogs.com/gdouzz/p/8228278.html

时间: 2024-10-15 11:52:39

如何增加一列的相关文章

表的操作-建立表-删除表-修改表的名字-修改列的名字及数据类型-删除/添加主键-在表的最后增加一列-查看表的结构

USE db; -- 列出查看当前数据库中的所有表 SHOW TABLES; SHOW TABLES LIKE 's%'; CREATE TABLE 表名 ( 列名 类型 修饰 约束, sid INT(3) UNSIGNED ZEROFILL PRIMARY KEY AUTO_INCREMENT sgender ENUM('男','女','保密') DEFAULT '男' )ENGINE=MYISAM DEFAULT CHARSET=utf8; -- 建立表 CREATE TABLE IF NO

在DBGrid增加一列CheckBox(而非DBCheckBox)

自:http://rabbitfox.blog.sohu.com/33264033.html http://community.csdn.net/Expert/topic/5342/5342920.xml?temp=.9525568 问:如何使dbgrid增加一列类似checkbox的控件,可以用鼠标来选择该行是否被选中,可以多选 最好的思路还是要在数据表里增加一个布尔字段,然后用DBCheckBox与它关联,而不是CheckBox.(至于在DBGrid里嵌入DBCheckBox的方法,可以参考

在数据表中增加一列,并为其添加值

增加一列: mysql> ALTER TABLE orderitems ADD f_id INT;Query OK, 16 rows affected (0.04 sec)Records: 16 Duplicates: 0 Warnings: 0 添加值: mysql> UPDATE orderitems SET f_id=100 WHERE o_num=10001;Query OK, 1 row affected (0.28 sec)Rows matched: 1 Changed: 1 Wa

JS实现可编辑的表格,双击可编辑,可以删除行和列,增加行和列,重置,导出表格,也可以上下移动元素

JS实现可编辑的表格,双击可编辑,可以删除行和列,增加行和列,重置,导出表格,也可以上下移动元素  原文:JS实现可编辑的表格,双击可编辑,可以删除行和列,增加行和列,重置,导出表格,也可以上下移动元素 源代码下载地址:http://www.zuidaima.com/share/1550463322606592.htm 源代码截图: JS实现可编辑的表格,双击可编辑,可以删除行和列,增加行和列,重置,导出表格,也可以上下移动元素

数据库——在原有的表中增加一列的命令(转)

mysql在表的某一位置增加一列的命令 如果想在一个已经建好的表中添加一列,可以用诸如: alter table t1 add column addr varchar(20) not null; 这条语句会向已有的表t1中加入一列addr,这一列在表的最后一列位置.如果我们希望添加在指定的一列,可以用: alter table t1 add column addr varchar(20) not null after user1; 注意,上面这个命令的意思是说添加addr列到user1这一列后面

ajax基础语法、ajax做登录、ajax做用户名验证是否可用、ajax做关键字查询动态显示、ajax做用表格显示数据并增加操作列

AJAX: AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 如果此页面用到了ajax方法,一定要在页面上端加上: <script src="../../jquery-1.11.2.min.js"></script> ajax基础语法: <script type="text/javascript">

为mysql在表的某一位置增加一列

如果想在一个已经建好的表中添加一列,可以用诸如: alter table t1 add column addr varchar(20) not null; 这条语句会向已有的表t1中加入一列addr,这一列在表的最后一列位置.如果我们希望添加在指定的一列,可以用: alter table t1 add column addr varchar(20) not null after user1; 注意,上面这个命令的意思是说添加addr列到user1这一列后面.如果想添加到第一列的话,可以用: al

为表增加一列属性(补充)

事情变得有意思了,上一篇花1小时撰写的"一分钟"文章,又引起了广泛的讨论,说明相关的技术大家感兴趣,挺好.第一次一篇技术文章的评论量过100,才知道原来"评论精选"还有100上限,甚为欣慰(虽然是以一种自己不愿看到的方式). <啥,又要为表增加一列属性?>的方案颇有争议: (1)版本号version + 扩展字段ext (2)用增加列的key+value方式扩充属性 有些评论,只能说"所谓夏虫,何以语冰"(作者要谦和,请删除).因自己

Devexpress GridView增加CheckBox列

参考DEV官网代码做了一个增加checkbox列效果: #region 方法:设置GridView数据绑定        public void GridDataBind()        {            dt = dbHelper.Fill(cmdStr);                     // 填充DataTable            dt.Columns.Add("Check", typeof(bool));  // 增加个CheckBox列