Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何选择属性的第一个字符并在多行上插入同一表中同一记录的其他列_Ruby On Rails_Postgresql - Fatal编程技术网

Ruby on rails 如何选择属性的第一个字符并在多行上插入同一表中同一记录的其他列

Ruby on rails 如何选择属性的第一个字符并在多行上插入同一表中同一记录的其他列,ruby-on-rails,postgresql,Ruby On Rails,Postgresql,我有一个巨大的用户表,包含将近一百万条记录,我需要迭代每个用户,在first\u name中获取字符串的第一个字符,并将该字符插入同一用户表上该记录的first\u initial。我不希望通过Rails来迭代,因为实例化对象等需要几个小时,所以我想知道是否有人有好的方法来完成这项工作,或者使用Rails的update\u all,或者将其严格保存在psql中 这将输出字符,但我无法将它们插入相应的初始列: SELECT SUBSTRING(first_name, 1, 1) FROM user

我有一个巨大的用户表,包含将近一百万条记录,我需要迭代每个用户,在
first\u name
中获取字符串的第一个字符,并将该字符插入同一用户表上该记录的
first\u initial
。我不希望通过Rails来迭代,因为实例化对象等需要几个小时,所以我想知道是否有人有好的方法来完成这项工作,或者使用Rails的
update\u all
,或者将其严格保存在psql中

这将输出字符,但我无法将它们插入相应的初始列:

SELECT SUBSTRING(first_name, 1, 1) FROM users;

任何帮助都将不胜感激。

这将满足您的需要,您可以将其放入迁移或从控制台运行

User.update_all("first_initial = SUBSTRING(first_name, 1, 1)")

完美的我离你很近,但到目前为止,谢谢你的帮助。