r - 在 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 )"
解决方案
你可以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)"
推荐阅读
- python - 如何将数据框插入到 Pandas 中的 SQl 服务器数据库中
- header - 文本模式下带有证书的soap ui请求
- javascript - (Javascript)递归函数在第一次调用时有效,但在第二次调用时无效
- mifos - Fineract CN 基本设置
- angular - 角度更新后 JIT 编译器不可用
- antlr4 - antlr4中的相互左递归
- javascript - 如何通过Javascript中的属性值获取另一个对象内的对象值
- webrtc - 未捕获的 DOMException:无法构造“RTCPeerConnection”:当 URL 方案为“转”或“转”时,用户名和凭据都需要
- node.js - 在 Windows 10 中清除现金后 NPM 命令不起作用
- python - Python中的等高线图。X 轴=时间,y 轴是浓度,Z 轴由包含直径数据的合并列组成