当前位置: 首页 > 知识库问答 >
问题:

使用旧表中的模式和数据创建表

岳嘉良
2023-03-14

我正在编写一个脚本,该脚本的目的是:基于包含后缀日期时间的旧表设置表名(例如,table_1_2020_01_01),基于旧表的架构为该表创建架构,然后从旧表向该表插入数据。

我创建了三个MySQL语句,用于设置表名,创建表,然后将数据插入到创建的表中:

SET @TABLE_NAME = CONCAT(DATE_FORMAT(NOW(), '%Y_%m_%d'), '_new_table');

SET @SQL = CONCAT('CREATE TABLE IF NOT EXISTS', @TABLE_NAME, 'LIKE old_table');
                            PREPARE stmt FROM @SQL;
                            EXECUTE stmt;
                            DEALLOCATE PREPARE stmt;

SET @SQL = CONCAT('INSERT INTO', @TABLE_NAME, 'SELECT * FROM old_table WHERE id = ?');
                            PREPARE stmt FROM @SQL;
                            EXECUTE stmt USING @id;
                            DEALLOCATE PREPARE stmt;

但是,每次我运行我的运行我的func从主,我收到这个错误:

panic: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'PREPARE stmt FROM @SQL;
                                                        EXECUTE stmt;
                                                        DEALLOCATE PREPARE stmt' at line

我在golang中发现Set表名是一个var。所以我的解决方案是使用准备好的报表,并将var传递到准备好的报表中。

也许是这样的:

stmt, err := tx.Prepare("CREATE TABLE (?) ...")
if err != nil {
    log.Fatal(err)
} 
defer stmt.Close() // danger!
_, err = stmt.Exec(tableNameVariable)

有没有一种方法可以使用_,err=db。执行(运行上述查询或有更好的方法吗?

共有1个答案

沈博达
2023-03-14

可以使用GORM库与数据库交互。GORM是一个SQL的“生成器”,它还允许您编写直接查询来编辑数据库。

https://gorm.io/docs/

https://gorm.io/docs/sql_builder.html

此外,gorm支持MySQL。

 类似资料:
  • 我正在尝试创建一个mysql数据库/模式,如果它还不存在的话。 以下是我尝试过的: docker编写。yml公司 创建数据库 它不起作用。如果架构不存在,使用docker/docker compose创建架构的最佳方式是什么?

  • 创建数据库之后,如何执行DDL语句来创建表?

  • 我直接下载了C:\中的derby,并设置了DERBY_INSTALL和CLASSPATH变量: 因此它显示ij>,并且我能够使用命令行SQL语句创建数据库。但我必须使用Java代码创建数据库及其表。所以我在下面的源代码,但我不知道在哪里粘贴它和如何运行它。当我将它粘贴到db-derby-10.9.1.0-bin>bin文件夹中,并尝试使用'java MainClass komaldb c:\'在该

  • 问题内容: 我将以下数据作为JSON: 我想将其显示为带有angularjs和ng-repeat的html表。这样我得到下表: 用于表格预览:http : //jsfiddle.net/54pD8/ 我的问题是html表是基于行的。我可以通过回合,然后通过练习来进行ng- repeat的迭代,但是要创建表格,我总是需要每个练习的第一个,然后是每个练习的第二个,依此类推。 有人可以帮我解决这个问题吗

  • 我已经使用Python Beautifulsoup从该网站的所有页面中,将此表中的数据刮取到字典中,如下面的代码所示。 然而,我也在努力为每一家有自己独立页面的公司拼凑,并将其编入词典。

  • 一旦你知道如何输入SQL语句的时候,你就可以准备访问一个数据庫。 假设,在你家(你的menagerie)有一些宠物,并且你想对他们的信息保持一个跟踪。这时候,你可以创建表来存储和加载你渴望的信息。然后你就可以通过检索数据庫里的表来回答各种各样的问题,这部分展示如何执行以下操作: 创建数据庫 创建表 加载数据到表 以不同的方式从表中检索数据 使用多个表 menagerie数据庫是简单的,但不难想像到