【问题标题】:SQLite: How to add a column to all the tables in the database?SQLite:如何为数据库中的所有表添加一列?
【发布时间】:2017-06-27 19:53:02
【问题描述】:

我对 SQLite 很陌生(整体 SQL)。我创建了一个数据库并在其中创建了多个表,然后突然意识到我忘记向它们添加一列。现在我有 280 个具有不同名称但没有列的表。我尝试添加 * 并与 SELECT 结合,但它给出了错误。我怎样才能完成它?

我的代码:

ALTER TABLE "MYBUS.*" ADD COLUMN STOPID int null;

【问题讨论】:

  • 你到底在尝试什么??
  • 为什么需要280张桌子?
  • 听起来像是数据库设计的噩梦——让我猜一下:每次有新的“总线”时,您都需要添加一个新表。
  • 我正在为我的城市建立一个公交路线数据库。我创建了这些表,其中包含站点名称、站点位置、公共汽车 ID 作为列,但忘记添加站点 ID。
  • 表名第二部分的信息是什么?

标签: sql sqlite alter-table


【解决方案1】:

3 小时后问题终于解决了。 在搜索了一段时间后,我偶然发现了这个答案 SQlite alter table with result from select statement

我跑了代码:select 'alter table '||tbl_name||' add STOPID int null' from sqlite_master

它返回了所有需要的 280 个 SQL 查询,但带有引号,所以我从 this.lau 中获取了线索,并创建了一个 python 正则表达式脚本并运行它。工作起来就像一个魅力,在 10 行代码内,我能够在我的所有 280 个表中添加一列。

【讨论】:

    【解决方案2】:

    查看此链接https://dba.stackexchange.com/questions/160145/add-columns-to-all-tables-in-a-database-if-the-columns-dont-exist

    尽管它适用于 SQL Server,但这应该可以帮助您入门。

    确保在将列名添加到表之前对其进行检查。

    【讨论】:

    • 尝试出现错误。作为一个菜鸟,我不知道用什么来代替。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    • 2021-06-08
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多