作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法使用给定的 FDML 接口(interface)一次插入多条记录?
给定insert-record语句一次只能处理一个值元组,并且无数次调用此函数而不是一次调用此函数的想法让我很困扰,我猜想(实际上没有进行任何分析)这也不是最快的方法。
最佳答案
这样的事情怎么样?
; SLIME 2013-04-02
CL-USER> (ql:quickload "clsql")
To load "clsql":
Load 1 ASDF system:
uffi
Install 1 Quicklisp release:
clsql
; Fetching #<URL "http://beta.quicklisp.org/archive/clsql/2013-04-20/clsql-20130420-git.tgz">
; 900.99KB
==================================================
922,610 bytes in 1.92 seconds (468.78KB/sec)
; Loading "clsql"
[package uffi]....................................
[package cmucl-compat]............................
[package clsql-sys]...............................
[package clsql]...................................
[package clsql-user]..............................
..................................................
[package ansi-loop]..............................
("clsql")
CL-USER> (ql:quickload "clsql-sqlite3")
To load "clsql-sqlite3":
Load 1 ASDF system:
clsql-sqlite3
; Loading "clsql-sqlite3"
[package clsql-uffi]..............................
[package clsql-sqlite3]...........................
[package sqlite3]........
("clsql-sqlite3")
CL-USER> (clsql:connect '("./test.db") :database-type :sqlite3)
#<CLSQL-SQLITE3:SQLITE3-DATABASE ./test.db OPEN {10080C08E3}>
CL-USER> (clsql:enable-sql-reader-syntax)
; No value
CL-USER> (clsql:create-table [test_insert]
'(([id] integer)
([first_name] text)
([last_name] text)))
; No value
CL-USER> (clsql:insert-records :into [test_insert]
:attributes '(id first_name last_name)
:values '(0 "John" "Neumann"))
; No value
CL-USER> (clsql:select [id] [first_name] [last_name] :from [test_insert])
((0 "John" "Neumann"))
("ID" "FIRST_NAME" "LAST_NAME")
CL-USER> (clsql:insert-records
:into [test_insert]
:attributes '(id first_name last_name)
:query (clsql:sql-expression :string
"select 1 as id, 'Albert' as first_name, 'Einstein' as last_name
union select 2, 'Alan', 'Turing'"))
; No value
CL-USER> (clsql:select [id] [first_name] [last_name] :from [test_insert])
((0 "John" "Neumann") (1 "Albert" "Einstein") (2 "Alan" "Turing"))
("ID" "FIRST_NAME" "LAST_NAME")
也许您可以用其他方式构建插入查询(其他数据库可能提供不同的语法)。 clsql
有(或者,更恰本地说没有)列重命名的语法......所以你必须操纵字符串/扩展它以让它使用符号来代替。
关于common-lisp - 如何使用 clsql 提供的 FDML 一次插入多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18105993/
有没有办法使用给定的 FDML 接口(interface)一次插入多条记录? 给定insert-record语句一次只能处理一个值元组,并且无数次调用此函数而不是一次调用此函数的想法让我很困扰,我猜想
我是一名优秀的程序员,十分优秀!