【问题标题】:How to add null value of all column of tables如何为表的所有列添加空值
【发布时间】:2021-08-06 17:40:32
【问题描述】:

我的数据库有 60 个表。

之前我使用的是 MySQL 5 版本,如果该列默认没有空值,它仍然可以接受空值。但是在 MySQL 8 中,如果我们没有为列插入任何值,我们必须将默认值设为 null。

我可以手动更改我的表格列,但这需要很多时间。

有没有更快的方法来做到这一点?

【问题讨论】:

  • 有时有这么多表可能表明设计不佳
  • 请提供一个简短的例子来说明问题的一个例子。另外,请描述您是如何从 MySQL 5 迁移到 8 的。(其中任何一个都可以帮助我们提出解决您问题的替代方案。)

标签: mysql mysql-8.0


【解决方案1】:

您可以查询 MySQL 数据库以查看数据库中所有列的默认值:

SELECT table_name, column_name, column_default 
FROM  information_schema.columns 
WHERE table_schema='<database_name>';

然后,从结果集中选择需要更改的列,并写下适当的 ALTER 查询,例如:

ALTER TABLE <table_name> ALTER COLUMN <column_name> SET DEFAULT <default_value>;

【讨论】:

  • 没那么简单。列的其余规范(例如,VARCHAR(123) COLLATE...)必须在 ALTER TABLE..ALTER COLUMN.. 中重复
猜你喜欢
  • 1970-01-01
  • 2021-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-31
  • 1970-01-01
  • 2018-08-23
相关资源
最近更新 更多