首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更新MYSQL数据库表中所有表的公共字段长度?

问如何更新MYSQL数据库表中所有表的公共字段长度?
EN

Stack Overflow用户
提问于 2018-02-14 15:27:32
回答 1查看 105关注 0票数 0

我面临的问题是更新两个字段(说活动,版本)的所有表的长度,其中包含这两个字段(说活动,版本)在我们的数据库中。

有没有办法更新两个字段。

在MySQL中是可能的吗?

如果可能的话,请分享给我。

在谷歌之后,我找到了这个Mysql- Single Sequence Table for all Tables

谢谢

西坦苏

EN

回答 1

Stack Overflow用户

发布于 2018-02-14 19:21:49

通过一系列ALTER TABLE语句,简短的回答是'Yes‘。

但是,首先要备份数据库。

接下来,通过查询information_schema,您可以确信您已经确定了这些列的实例所在的所有表。就像这样

代码语言:javascript
复制
SELECT `table_name`, `column_name`, `column_type`, `column_default`, `is_nullable`
FROM `information_schema`.`columns`
WHERE `table_schema` = 'yourdbname'
AND `column_name` IN('Version','Say Active')
ORDER BY `column_name`;

这将为您提供一个表的列表,并允许您查看当前的定义是否一致。

接下来,您需要为标识的每个表和列创建一些ALTER TABLE语句,以便为要更改的列提供完整的定义。如果您对mysql syntax不太满意,那么可以使用

代码语言:javascript
复制
SHOW CREATE TABLE `tablename1`;  

在一个受影响的表上,并将它们复制出来,替换编辑版本中的列长度。

使用MODIFY列而不是CHANGE列语法,因为您不打算更改列名。

如果我们假设Version列的定义返回为

Version varchar(12)不为空

如果您希望将其长度加倍,则可以为每个实例创建一条ALTER TABLE语句:

代码语言:javascript
复制
ALTER TABLE `tablename1` MODIFY COLUMN `Version` VARCHAR(24) NOT NULL; 
ALTER TABLE `tablename2` MODIFY COLUMN `Version` VARCHAR(24) NOT NULL; 

等。

当您更新了所有表之后,您可以针对information_schema重新运行查询,以检查所有表中的两列是否都已被修改。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48781768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档