Michael--thanks for your help. As you probably guessed, I'm still running
0.5. DEFAULT is, in fact, a valid MySQL keyword, though I didn't know about
it before looking into this problem.

On Wed, May 19, 2010 at 10:09 AM, Michael Bayer <mike...@zzzcomputing.com>wrote:

>
> On May 18, 2010, at 10:06 PM, Dan Kuebrich wrote:
>
> My apologies; I expressed my question rather incoherently.
>
>  if the question is, I want to multiple insert like [{'a':1, 'b':2, 'c':3},
>> {'a':2}, {'a':3, 'b':4}], etc. only some dictionaries are missing different
>> keys, that is not allowed.   The structure of the SQL statement as parsed by
>> MySQL determines for which columns the server-side default is emitted and
>> there is only one version of that with an executemany.   So every param
>> dictionary must have at least all the keys which the first one does.
>>
>
> This was the basic scenario of my question. However, unless I
> misunderstand, it does seem to be "allowed": the missing values are replaced
> with NULL in the generated query.
>
>
> it should not be in SQLA 0.6.    Specific logic was added to disallow this.
>
>
> But what I actually meant to ask was this: sqlalchemy handles missing
> dictionary entries as NULL for the purpose of inserts, is there an easy way
> to have it generate a SQL statement with DEFAULT for missing dictionary
> entries?
>
> Eg. execute(testtable.insert(), [{'a':1, 'b':2, 'c':3}, {'a':2}, {'a':3,
> 'b':4}]) => INSERT INTO testtable (a,b,c) VALUES
> (1,2,3),(2,DEFAULT,DEFAULT),(3,4,DEFAULT)
>
>
> ive never seen that syntax before (i.e. "DEFAULT" is actually present as a
> value).    Assuming its valid, you could achieve it using a "client side"
> default as I mentioned earlier.    i.e. Column('foo', Integer,
> default=text('DEFAULT')).  But again, not with an executemany() and
> heterogeneous dictinoaries as you have above.     The SQL statement is
> rendered only once, and either has a bind parameter for a particular
> position or not.
>
>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy" group.
> To post to this group, send email to sqlalch...@googlegroups.com.
> To unsubscribe from this group, send email to
> sqlalchemy+unsubscr...@googlegroups.com<sqlalchemy%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/sqlalchemy?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to