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

(高朗)将数组中的所有行插入到表中

牟飞沉
2023-03-14

我使用的数据库是postgresql。我想做的是:-

  1. 我有一个存储不同字符串值的数组(例如大小为4[a, b, c, d]
  2. 我有个表列叫"秘密"
  3. 我想将数组中的所有值插入到表中的每一行(例如,假设表中有4行,第1行、第2行、第3行和第4行。数组中的值“a”应该插入到第1行,而值“b”应该插入到第2行,其他行也是如此。基本上只更新所有行。

这是我的代码:-

secret:= make([]string, count) //count = all the row from the column.
for i := range secret {
    _ = i
    testSecret:= random_string.GenerateString(10) //method for generating random string

    secret = append(secret, testSecret)

}
//update query
pgUpdate := `UPDATE table SET secret= $1`
err = db.QueryRow(pgUpdate, secret).Scan()
if err != nil {
    log.Fatalf("Unable to execute the UPDATE query. %v", err)
}

错误,我得到“类型:不支持的类型[]字符串,字符串的切片”

我是刚到戈朗的,不知道我应该找什么,所以如果有其他事情,请教育我。

共有1个答案

华化
2023-03-14

我使用动态SQL编写了一个简单的查询。示例:

do 
$body$
declare
    per RECORD;
begin 

    FOR per IN
        select 'insert into table1 (' || string_agg(main.fnames, ',') || ') values (' || string_agg(main.sval::text, ',') || ');' as p_sql from (
            select 
                'row' || (ROW_NUMBER() OVER(ORDER BY (SELECT NULL)))::text AS fnames,
                '''' || t2.sval || '''' as sval 
            from (  
                select t1.sval from unnest('{a,b,c}'::text[]) as t1(sval)
            ) t2
        ) main 
    LOOP    
        execute per.p_sql;
    end loop;
   
end; 
$body$
LANGUAGE 'plpgsql';
 类似资料:
  • 问题内容: 我有一个带有user_ids的表,另一个带有user_ids和其他数据(空)的表。 我想将所有ID插入空表。 我知道我可以用php脚本甚至用以下命令创建copy \ paste脚本 我感兴趣的是,当我不提及每个值时,我能以某种方式使用sql创建查询吗?更像是将所有选定的值复制到新表中。喜欢 问题答案: 看看st INSERT … SELECT语法 使用INSERT … SELECT,您

  • 我试图弄清楚如何将值的元组插入到预定义的表中,而不需要像这样的简单语法: 因为我的元组具有如下正确的值序列: 我想知道一些简单的解决方案:-)比如: 由于我已经创建了表架构并且元组具有相同的属性序列,因此我认为这是可以做到的,而无需将所有参数逐个传递给cur.execute()

  • 我有一个登记表,并将插入数据输入到两个不同的表使用注册功能。这是表结构: 使用者 用户id(int) 用户电子邮件(varchar(64)) 用户名(varchar(64)) 用户通行证(varchar(64)) 轮廓 教授id(int) 用户id(int) 名字(varchar(64)) 姓氏(varchar(64)) …(其他领域) 我将变量放入两个不同的数组($data1) 模型是这样的:

  • 下面是我的代码和我到目前为止所做的事情。 如何在单击#OrderSave按钮后使用ajax将表中的所有数据插入数据库? $(“#code”).bind(“blur keypress”,function(event){event.preventdefault();if(event.keycode===13 event.type=='blur'){var vals=$('#code').val();$

  • 问题内容: 我正在尝试打印给定列表的所有可能结果,并且我想知道如何在列表的各个位置添加值。例如,如果我的名单是,我要插入到列表中的所有可能的索引,使得它会返回此,,。 我在考虑使用for循环,但不确定如何启动。 问题答案: 您可以通过以下列表理解来做到这一点: 以您的示例为例:

  • 问题内容: 我想知道php中是否有一个函数可以让我将所有选择的数据放在一个数组中。当前我正在使用mysql_fetch_array,并且正如我在手册中所读的那样,该函数不会获取表中的每条记录。 问题答案: 我建议出于性能和安全目的使用MySQLi或MySQL PDO,但要回答这个问题: 如果您切换到MySQLi,则可以执行以下操作: