如何重命名现有表格?

时间:2018-03-29 07:56:01

标签: python sql postgresql sqlalchemy

我想在运行时使用声明性基础创建200多个表。我知道这是不可能的,所以我的想法是创建一个公用表并将其重命名200次。

class Movie(Base):

    id = Column(Integer, primary_key=True)
    title = Column(String)
    release_date = Column(Date)
    name=Column(String)
    __tablename__ = 'titanic'

    def __init__(self, newname,title, release_date):
        self.title = title
        self.release_date = release_date

从" titanic"更改表名的代码是什么? to" wild"?

在Postgresql中它是

ALTER TABLE table_name
RENAME TO new_table_name;

我没有在sqlalchemy中找到解决方案。

此表没有外键。

这个问题的目的是通过sqlalchemy中提供的解决方案(if)重命名现有表,而不是以纯粹的python方式(如其他问题中所述)。

1 个答案:

答案 0 :(得分:-1)

重命名表的最简单方法是创建一个新表,使用INSERT INTO语句将数据转储到其中。

更多来自网络:

  

您必须向数据库发出适当的ALTER statements以更改表的名称。就表元数据本身而言,您可以尝试set table.name = 'newname',并使用其新名称将Table对象重新放置在metadata.tables中,但这可能会对引用旧名称的外键产生挥之不去的副作用名称。通常,不支持该模式 - 它旨在使SQLAlchemy应用程序以固定的数据库结构运行(只能动态添加新表)。   (Source