You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 19:06:08