我创建了一个名为Markers的表。下面是.sql文件。
for(int i=0, n=11; n<MAX; i++, n++)
我有一个包含IP地址的文本文件。该文件看起来像这样。
CREATE TABLE markers (
id SERIAL PRIMARY KEY ,
ip_address varchar(25),
Hostname varchar(255),
Continent varchar(255),
Country varchar(255),
Capital varchar(255),
State varchar (255),
City_Location varchar(255)
);
属于每个IP地址的信息存储在表中。 如果我想收集ip 8.8.8.8的数据,我可以写一个这样的查询
8.8.8.8
23.64.0.0
31.0.0.0
50.22.0.0
54.244.0.0
54.72.0.0
54.80.0.0
同样我可以为其他IP做。但这很费时间,因为我必须为每个IP地址编写一个查询。
相反,有没有什么方法可以从文本文件中读取IP地址并一次性执行所有IP地址的查询?
任何有关此的帮助将不胜感激。谢谢。
答案 0 :(得分:1)
您可以使用psql并发出以下命令(针对您的特定情况定制,阅读PG手册&#34; COPY FROM&#34;):
create temp table ip_addresses (ip_address text);
copy ip_addresses from stdin csv; -- pipe your text file here
select * from markers where ip_address in (select * from ip_addresses);