postgresql 操作备忘

本文详细介绍如何使用SQL进行数据查询和批量插入操作,包括通过SPLIT_PART函数解析文件名获取特定信息,以及使用INSERT INTO结合SELECT语句批量创建记录。这些技巧对于数据库管理和数据处理非常实用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查询指定记录

SELECT file_name, CAST(SPLIT_PART(file_name, '-', 2) as char(32)) AS caller_number, CAST(SPLIT_PART(SPLIT_PART(file_name, '-', 3), '.',1) AS char(32)) AS callee_number, ext,duration, created_at, abs_path, channel_uuid FROM media_files WHERE TRIM(SPLIT_PART(file_name, '-', 2)) <>'' ORDER BY created_at DESC LIMIT 15 OFFSET 1000000 ;

使用SPLIT_PART 解析  20190729030755-6010-6005.wav,解析为6010 和6005

批量插入数据脚本

INSERT INTO media_files (uuid, typ, "name", file_name, ext, file_size, duration, original_file_name, dir_path, abs_path, rel_path, user_uuid, channel_uuid, created_at)
SELECT 
uuid_generate_v4(),
'AUDIO', 
generate_series(1, 1000000)+6000||'-AudioRecord', 
to_char(clock_timestamp(), 'yyyymmddhhmmss') ||'-6010-6005.wav', 
'.wav', 
generate_series(1, 1000000), 
generate_series(1, 1000000), 
to_char(clock_timestamp(), 'yyyymmddhhmmss') ||'-6010-6005.wav',
'/usr/local/ftpipdispatch/wav/record_wav', 
'/usr/local/ftpipdispatch/wav/record_wav/'|| to_char(clock_timestamp(), 'yyyymmddhhmmss') ||'-6010-6005.wav',
'/usr/local/ftpipdispatch/wav/record_wav/'|| to_char(clock_timestamp(), 'yyyymmddhhmmss') ||'-6010-6005.wav', 
'00000000-0000-0000-0000-100000000005', 
uuid_generate_v4(),
clock_timestamp()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值