如何使用cl-pg包?Raspberry Pi 4B连接PostGres问题求助
完整cl-pg操作PostgreSQL示例代码
1. 必要加载语句与基础配置
首先确保正确加载cl-pg库,apt安装的cl-pg通常可直接通过require加载,若加载失败可指定具体路径:
;; 加载cl-pg库(优先尝试) (require 'cl-pg) ;; 若上述加载失败,指定树莓派上apt安装的cl-pg默认路径 ;; (load "/usr/share/common-lisp/source/cl-pg/cl-pg.lisp")
2. 完整操作示例
以下代码包含数据库连接、查询、插入、关闭连接的完整流程,需替换为你的数据库实际信息:
;; 加载cl-pg库 (require 'cl-pg) (defun postgres-operation-demo () ;; 1. 建立数据库连接 (let* ((db-name "your_database") ;; 替换为你的数据库名 (db-user "your_username") ;; 替换为你的PostgreSQL用户名 (db-pass "your_password") ;; 替换为你的用户密码 (db-host "localhost") ;; 本地数据库用localhost (db-port 5432) ;; PostgreSQL默认端口 (conn (cl-pg:connect :database-name db-name :user db-user :password db-pass :host db-host :port db-port))) (when conn (format t "数据库连接成功~%") ;; 2. 执行查询语句 (format t "--- 查询数据示例 ---~%") (let ((query-result (cl-pg:exec-query conn "SELECT * FROM your_table"))) ;; 替换为你的表名 (loop for row in (cl-pg:query-result-rows query-result) do (format t "查询结果行: ~a~%" row))) ;; 3. 执行参数化插入(避免SQL注入) (format t "--- 插入数据示例 ---~%") (cl-pg:exec-query conn "INSERT INTO your_table (col1, col2) VALUES ($1, $2)" ;; 替换为你的列名 :parameters '("测试内容" 2024)) ;; 对应参数值 (format t "数据插入完成~%") ;; 4. 关闭数据库连接 (cl-pg:disconnect conn) (format t "数据库连接已关闭~%")))) ;; 调用示例函数 (postgres-operation-demo)
注意事项
- 替换代码中所有
your_*开头的占位符为你的实际数据库信息 - 确保PostgreSQL服务正在运行:
sudo systemctl start postgresql - 确认你的PostgreSQL用户拥有目标数据库的读写权限
- 若连接失败,检查PostgreSQL监听地址配置(需允许本地连接)
内容的提问来源于stack exchange,提问作者Michel
相关产品推荐
相关产品推荐

