首页 > 解决方案 > 在 R 中创建 SQL CREATE TABLE 查询

问题描述

我有两个用于 SQL 表的列名和列类型向量。我想将这些解析为 CREATE TABLE 查询并从 R 运行它以自动创建表。这是示例:

DATA:
    col_names <- c("id", "integer", "decimal", "varchar", "logical")
    col_types <- c("int", "int", "decimal(10,4)", "varchar(255)", "int")

SQL CREATE TABLE 查询如下所示:

"CREATE TABLE test_tbl ( colname1 coltype1, colname2 coltype2, ... )"

然后可以使用 odbc 包中的 dbSendQuery 运行它。

我的解决方案但很麻烦,我想找到更简单的方法来将名称和类型解析为该查询格式。我的表越来越大,我认为为 50 多列做我的解决方案并不明智。

paste0("CREATE TABLE db_tbl ( ", 
                        col_names[1], " ", col_types[1], ", ",
                        col_names[2], " ", col_types[2], ", ",
                        col_names[3], " ", col_types[3], ", ",
                        col_names[4], " ", col_types[4], ", ",
                        col_names[5], " ", col_types[5], " )")

"CREATE TABLE db_tbl ( id int, integer int, decimal decimal(10,4), varchar varchar(255), logical int )"

标签: rstring

解决方案


你可以paste在里面使用paste0

paste0("CREATE TABLE db_tbl ( ",paste(col_names, col_types, collapse = ","), ')')

#[1] "CREATE TABLE db_tbl ( id int,integer int,decimal decimal(10,4),varchar varchar(255),logical int)"

推荐阅读