lispとrubyとpythonと その9 DBアクセス(common lisp)

CommonLispでDBアクセスというとclsql。
いつもどおりasdfで入れて。。。と思ったが、依存関係があるのかうまく入らない。
DB関連だからしょうがないのかなぁと、Synapticパッケージマネージャで入れた。
DBはMySQLで。。。としてたんだけど、プリペアドステートメントが通らない。
どうもMySQLだとダメみたい。
プリペアドステートメント使えないってちょっとありえないのでPostgreに乗り換えを試みる・・・。

中途半端だけど途中までやったのがこちら。↓

;;マニュアルはここ
;;http://clsql.b9.com/manual/

(require 'clsql)

(let ((con nil))
  (unwind-protect
       (progn
  ;;connectionのopen
  ;;if-exitsはコネクションプールの扱い
  ;;:oldは古いのを使いまわす
  ;;参考
  ;;http://d.hatena.ne.jp/yuki_neko_nyan/20070901/clsql
  (setf con (clsql-sys:connect '("localhost" "test_db" "test_user" "p") :if-exists :old :database-type :mysql))
  ;;トランザクション開始
  (clsql-sys:start-transaction :database con)
  ;;insert
  (clsql-sys:execute-command "insert into tb0 values (0,'あああああ','いいいいい')" :database con)
  ;;select
  (mapc 
   #'(lambda (lst)
       (format t "~A~%" lst))
   (clsql-sys:query "select * from tb0" :database con))
  ;;update
  (clsql-sys:execute-command "update tb0 set data1='ううううう'" :database con)
  ;;select
  (mapc 
   #'(lambda (lst)
       (format t "~A~%" lst))
   (clsql-sys:query "select * from tb0" :database con)))
    (if con
 (progn
   (format t "rollback~%")
   ;;rollback 更新してしまうと面倒だから戻す
   (clsql-sys:rollback :database con)
   ;;切断
   (clsql-sys:disconnect :database con)))))

;;->(0 あああああ いいいいい)
;;  (0 ううううう いいいいい)
;;  rollback

;;with系を使ってみる       
(clsql-sys:with-database 
    (con '("localhost" "test_db" "test_user" "p") :if-exists :old :database-type :mysql)
  (clsql-sys:with-transaction (:database con)
    (mapc 
     #'(lambda (lst)
  (format t "~A~%" lst))
     (clsql-sys:query "select * from tb1" :database con))))

;;->(0 あああああ いいいいい)
;;  (1 ううううう えええええ)

;;preparedstatement
(clsql-sys:with-database 
    (con '("localhost" "test_db" "test_user" "p") :if-exists :old :database-type :mysql)
  (setf stmt (clsql-sys:prepare-sql "select * from tb0 where id = ?" '(int) :database con)))
;;    (format t stmt))))

;;プリペアドステートメントは実装されてない???
;;MySQLだからか??
;;A database error occurred: NIL / NIL
;;  DATABASE-PREPARE not implemented for #<CLSQL-MYSQL:MYSQL-DATABASE localhost/test_db/test_user OPEN {BB92501}>
;;   [Condition of type CLSQL-SYS:SQL-DATABASE-ERROR]