【问题标题】:MySQL Update column default on all tables where table name starts with ids_表名以 ids_ 开头的所有表上的 MySQL 更新列默认值
【发布时间】:2017-01-12 15:35:26
【问题描述】:

前几天我们使用 laravel 4 模式运行了一个脚本,该脚本向所有表名以 ids_ 开头的表添加了一个列 (service_id)

当我们运行脚本时,我们犯了一个错误,没有为我们添加的列设置默认值。

我相信必须通过 laravel 4 架构或 bash 脚本以某种方式允许我们回滚并添加默认值,但我无法弄清楚。

有人可以帮忙吗。

谢谢。

【问题讨论】:

  • 你试过什么?听起来你有一个脚本可以获取你更新的所有表,所以你只需要ALTER TABLE ... ALTER COLUMN ... SET DEFAULT...?
  • 我们运行了一个脚本,为我们提供了数据库中所有表的列表,然后对它们进行了 foreach 循环以找到以 ids_ 开头的表,我确实查看了 laravel 4架构文档以查看有关更新表的信息,但它仅真正告诉您如何在创建时设置默认值。

标签: php mysql bash laravel-4 schema


【解决方案1】:

试试这个:

ALTER TABLE `your_table` CHANGE COLUMN `service_id` `service_id` VARCHAR(10) NOT NULL DEFAULT 'your_default_value';

VARCHAR(10) 是一个示例,但必须与您之前指定的相同。

【讨论】:

  • 嗨 Omer,谢谢你,我遇到的问题是有 23 台服务器,平均每台服务器上有 30-50 个表需要更新,所以希望表名可以通过脚本设置以保存非常手动的过程。
  • 然后在 bash 中循环使用命令行中的表名和 mysql (-e)。
猜你喜欢
  • 2017-09-19
  • 1970-01-01
  • 2010-12-18
  • 2013-12-11
  • 1970-01-01
  • 2012-12-30
  • 2013-04-01
  • 2021-06-07
  • 1970-01-01
相关资源
最近更新 更多