sqlite 如何使用带空格的列名插入值?

8tntrjer  于 2022-11-15  发布在  SQLite
关注(0)|答案(1)|浏览(246)

我想将值从PostgreSQL插入到SQLite。值是带空格的列名。我的代码是:

def copy_videos():
    create_table_videos()    
    query1 = run_query("SELECT * FROM videos")
    with local_engine.connect() as conn:
        query2 = f"INSERT INTO videos values (:video_id, :title, \":length (min)\" , :category_id, :created_at)"
        conn.execute(text(query2), query1)
        query = "SELECT * FROM videos as videos"
        rows = conn.execute(text(query))
        # conn.commit()
        for x in rows.all():
            return(x['videos'])
print(copy_videos())

输出:
[SQL:INSERT INTO INVERSIONS VALUES(?,?,“?(MIN)”,?,?)][参数:[{‘VIDEO_ID’:‘132f767c-2507-4de8-8609-0268c7c2c651’,‘标题’:‘时尚篮秃顶椭圆形字形’,‘长度(分钟)’:41.9313587667618,‘CATEGORY_ID’:2.0,...(截断246953个字符)...Eccle打磨Mind Coupe‘,’长度(分钟)‘:55.7423979070126,’类别ID‘:15.0,’Created_at‘:日期时间.日期时间(2014,7,19,18,45,40,980416)}]]

edqdpe6u

edqdpe6u1#

不建议有这样的专栏。最佳解决方案:将列重命名为LENGTH_MIN(或类似的名称)
如果你不能做到这一点,我会推荐以下几点:
1.在对postgres的查询中选择使用双引号,然后使用关键字as重命名:
query1 = run_query('select video_id, title, "length (min)" as length_min, category_id, created_at from videos')
1.将您的问题2更改为:
query2 = "INSERT INTO videos (video_id, title, length_min , category_id, created_at) values (:video_id, :title, :length_min , :category_id, :created_at)"

相关问题