MySQL向表中添加列

这篇具有很好参考价值的文章主要介绍了MySQL向表中添加列。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们使用alter table add column语句向现有表中添加新列。

简介

alter table table_name
add [column] column_name column_definition [first|after existing_column];

说明:

  • alter table子句后指定表名;
  • column关键字是可选的,可以省略它;
  • 可以通过first关键字将新列添加为表的第一列,也可以使用after existing_column子句在现有列之后添加新列,如果没有明确指定会将其添加为最后一列;

若要向表中添加两个或更多列,使用下面语法:

alter table table_name
add [column] column_name column_definition [first|after existing_column],
add [column] column_name column_definition [first|after existing_column],
...;

举例

创建一个表

create database test;
use test;

create table if not exists vendor (
	id int auto_increment primary key,
  name varchar(255)
);

添加新列并指定位置

alter table vendor
add column phone varchar(15) after name;

添加新列但不指定新列位置

alter table vendor
add column vendor_group int not null;

插入记录

insert into vendor(name, phone, vendor_group)
values('IBM', '(408)-298-2987', 1);

insert into vendor(name, phone, vendor_group)
values('Microsoft', '(408)-298-2988', 1);

同时添加两列

alter table vendor
add column email varchar(100) not null,
add column hourly_rate decimal(10, 2) not null;

注意:email和hourly_rate两列都是not null,但是vendor表已经有数据了,在这种情况下,MySQL将使用这些新列的默认值。

检查vendor表中的数据

select id, name, phone, vendor_group, email, hourly_rate
from vendor;

查询结果:

+----+-----------+----------------+--------------+-------+-------------+
| id | name      | phone          | vendor_group | email | hourly_rate |
+----+-----------+----------------+--------------+-------+-------------+
|  1 | IBM       | (408)-298-2987 |            1 |       |        0.00 |
|  2 | Microsoft | (408)-298-2988 |            1 |       |        0.00 |
+----+-----------+----------------+--------------+-------+-------------+
2 rows in set (0.00 sec)

email列中填充了空值,而不是NULL值,hourly_rate列填充了0.00

添加表中已存在的列

MySQL将发生错误

alter table vendor
add column vendor_group int not null;

操作结果:

ERROR 1060 (42S21): Duplicate column name 'vendor_group'

检查表中是否已存在列

对于几列的表,很容易看到哪些列已经存在,如果有一个饮食数百列的大表,那就比较费劲了

select if(count(*) = 1, 'Exist', 'Not Exist') as result
from information_schema.columns
where table_schema = 'test'
	and table_name = 'vendor'
	and column_name = 'phone';

查询结果:

+--------+
| result |
+--------+
| Exist  |
+--------+
1 row in set (0.00 sec)

在where子句中,我们传递了三个参数:表模式或数据库,表名和列名。我们使用if函数来返回列是否存在。

参考

https://www.begtut.com/mysql/mysql-add-column.html文章来源地址https://www.toymoban.com/news/detail-466767.html

到了这里,关于MySQL向表中添加列的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Apache Paimon使用之 Altering Tables

    1.改变或增加表属性 设置表属性 write-buffer-size 为 256 MB 。 Flink 引擎 Spark3引擎 2.重命名表 Flink引擎 Spark3引擎 最简单的sql调用是 可以以这种方式重命名paimon表 不能将Catalog名称放在重命名的表之前,会报错: 注意 :如果使用对象存储,如S3或OSS,请谨慎使用此语法,因为对象

    2024年03月12日
    浏览(37)
  • MySQL-- ADD COLUMN 添加多个字段的写法

    MySQL alter 同时添加多个字段写法 ALTER语法说明: ALTER TABLE 表名 ADD COLUMN 字段名 字段类型 默认值 注释 1 分开写多个 alter table 2 只写 ADD 不写COLUMN 多个字段名写到括号中,用逗号隔开 或者写多个ADD 3 写COLUMN 其实就是在2-1的基础上 加上COLUMN 相对规范 写多

    2024年02月06日
    浏览(39)
  • 如何在MySQL现有表中添加自增ID?

    当在MySQL数据库中,自增ID是一种常见的主键类型,它为表中的每一行分配唯一的标识符。在某些情况下,我们可能需要在现有的MySQL表中添加自增ID,以便更好地管理和索引数据。在本文中,我们将讨论如何在MySQL现有表中添加自增ID,并介绍相关的步骤和案例。 创建新的自增

    2024年02月06日
    浏览(30)
  • mysql-数据库-在表中添加数据三种方式

    创建完成后,就可以进行添加数据的操作了(表的名字是自己起的),记得和下面的名字匹配上就行。 1.第一行数据,使用第一种形式 2.第二行数据,指定你要指定要插入字段 4.使用一条insert into语句插入多条记录 以下仅供参考: 完成后,即可查看表中的数据

    2024年02月08日
    浏览(50)
  • 【mysql将一个表的数据添加到另一个表中】

    1、两个表的结构一致: 插入时若存在主键冲突,使用以下sql删掉重复数据: 2、当两张表字段不相同,使用以下sql,要保证字段类型一致。 3、复制一个表数据结构完全一样的数据到新表

    2024年02月06日
    浏览(43)
  • mysql报错ERROR 1356 (HY000): View ‘mysql.user‘ references invalid table(s) or column(s) or function(s)

    当您在使用 “UPDATE user SET password=PASSWORD(‘newpassword’) WHERE User=‘root’;” 命令时提示 “ERROR 1356 (HY000): View ‘mysql.user’ references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them”,表明在您的 MariaDB 版本中,‘user’ 表已经不存在,由于版本不同的

    2024年02月14日
    浏览(44)
  • el-table组件的el-table-column电脑端使用fixed属性固定,移动端不使用固定,怎么实现?

           要在电脑端使用 fixed 固定列,而在移动端不使用,可以使用 CSS 媒体查询结合 Vue 的动态绑定来实现。以下是一个示例代码:        在上面的示例中,我们使用 isDesktop 数据属性来判断当前设备是否为电脑端。通过监听窗口的 resize 事件,动态更新 isDesktop 的值。然后

    2024年02月15日
    浏览(47)
  • 【mysql表分区系】mysql创建分区表提示A PRIMARY KEY must include all columns in the table‘s partitioning function

    首先声明下我这边使用的mysql版本是5.7.29版本,当然下面的问题我这边也是基于这个版本。这里因为没有考证其他版本是否也会有这些问题,可自行官方文档来查阅资料 一个唯一键必须包含表分区函数所有的列,根据这个错误提示我们大概就知道怎么处理,但是why?我们还是沉

    2024年02月06日
    浏览(91)
  • element-ui中使用el-table ,el-table-column循环列发现列错乱解决方法

    由于 需要动态循环列展示表格 而不得不 套一层div 标签时会造成表格列错乱的想象,这是因为el-table中不允许有除el-table-column标签以外的元素。 1、 或许你可以试试使用template 标签包裹 2、把div标签删了,不用它包裹 3、再循环前多加一行宽度为1的列 el-table-column 前面的两种方

    2024年02月11日
    浏览(57)
  • Element UI 使用 table 组件设置 el-table-column 宽度width为百分比无效的问题解决方案

    使用 Element el-table 组件时,给列 el-table-column 设置百分比 % 宽度无效( width=\\\"30%\\\" ) Vue中要将 el-table-column 的宽度设置成百分比的话,不能通过设置 width 来实现,而是要设置 min-width ,并且每一列都必须设置 min-width 。 el-table 组件会被 vue 解析成 html ,Vue直接把百分号去掉把数值当

    2023年04月08日
    浏览(99)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包