| Allegro CL version 10.0 Unrevised from 9.0 to 10.0. 9.0 version |
Arguments: cols-and-vals &key table db showsql on-dup-key
insert-db is a macro that creates an sql statement to insert a row into a table.
db should be a mysql
object returned
by connect. The value
of *mysql*
is a
suitable value (and the default).
table specifies the table in the database into which the new row will be inserted. There is no meaningful default: you must specify a string naming a table as the value.
If showsql is specified true, the generated sql statement will be printed.
cols-and-vals specifies the columns and values. It looks like a let binding list:
The value of on-dup-key has the same form as cols-and-vals and specifies which columns should be set to which values if the insert tries to insert a row with the same values in key columns as an existing row. Using this argument will save you the trouble of checking if a row exists and then either doing an insert or an update based on what you found.
cl-user(62): (insert-db ((val 20) (sq 400)) :table "square" :showsql t) sql: (format nil "insert into square(val,sq) values(~a,~a)" 20 400) nil cl-user(63):
If you are inserting a string or blob value you should specify a third
value of :text
in the
cols-and-vals list.
cl-user(63): (sql "create table atext(ttt text)") nil cl-user(64): (insert-db ((ttt "foo" :text)) :table "atext") nil
If you do not specify :text
and and the value to be
stored in the column is a string then the string is put in the sql
statement verbatim. This is useful to store the value of mysql
built-in functions.
cl-user(67): (insert-db ((val "now()") (sq "now()*now()")) :table "square") nil cl-user(68):
See mysql.htm for information on the Allegro MySQL facility.
Copyright (c) 1998-2019, Franz Inc. Oakland, CA., USA. All rights reserved.
This page was not revised from the 9.0 page.
Created 2015.5.21.
| Allegro CL version 10.0 Unrevised from 9.0 to 10.0. 9.0 version |