24 messages in com.mysql.lists.plusplusRe: Inserting with a column that uses...
FromSent OnAttachments
Graham Reitz08 Aug 2007 20:17 
Graham Reitz08 Aug 2007 20:49 
Graham Reitz08 Aug 2007 21:03 
Graham Reitz08 Aug 2007 21:14 
Warren Young09 Aug 2007 05:04 
Graham Reitz10 Aug 2007 16:58 
Graham Reitz10 Aug 2007 17:41 
Graham Reitz10 Aug 2007 22:45 
Graham Reitz10 Aug 2007 23:26 
Jim Wallace11 Aug 2007 18:28 
Graham Reitz11 Aug 2007 20:50 
Graham Reitz11 Aug 2007 21:10 
Jim Wallace12 Aug 2007 11:42 
Graham Reitz12 Aug 2007 13:07 
Warren Young13 Aug 2007 15:51 
Graham Reitz13 Aug 2007 20:49 
Joel Fielder14 Aug 2007 00:41 
Graham Reitz14 Aug 2007 13:18 
Warren Young14 Aug 2007 15:11 
Graham Reitz14 Aug 2007 18:37 
Graham Reitz14 Aug 2007 20:41 
Warren Young16 Aug 2007 05:00 
Graham Reitz16 Aug 2007 16:00 
Warren Young28 Dec 2007 02:36 
Subject:Re: Inserting with a column that uses auto_increment
From:Graham Reitz (grah@mac.com)
Date:08/11/2007 08:50:54 PM
List:com.mysql.lists.plusplus

Thanks Jim,

So if I have a table with 3 columns and the first column is the auto_increment column.

I can do this and it will work?

// Used for inserts sql_create_2(insert, 1,2, int, some_id_2, int, some_id_3)

// Used for retrievals sql_create_3(query, 1,2, int, auto_id_1, int, some_id_2, int, some_id_3)

Thanks again, Graham

On Aug 11, 2007, at 8:29 PM, Jim Wallace wrote:

I use auto_increment often. The trick is to not include that column in the sql_create_* macro. This may mean you have > 1 macro for the same table, one for insert w/o that column, and one for retrieval with that column. I often have > 1 macro for the same table depending on how I'm using it.

HTH

-----Original Message----- From: Graham Reitz [mailto:grah@mac.com] Sent: Saturday, August 11, 2007 2:27 AM To: plus@lists.mysql.com Subject: Inserting with a column that uses auto_increment

How do you prevent an insert as shown in the code below from putting "bogus" data in an auto_increment field?

It seems like the billing_id field, in the code below, inserts a number based on the un-initialized value of client_id, instead of letting the database auto_increment the value. What's a good method to deal with this, that allows the database to auto_increment a database field?

Thanks, Graham

/************ CODE ************/

#include <mysql++.h> #include <custom.h>

using namespace mysqlpp;

sql_create_2(clients, 1, 2, unsigned int, client_id, // auto_incremented field unsigned int, billing_id)

void populate_client_info(clients& client_info) { client_info.billing_id = 1; }

int main (int argc, char* const argv[]) { Connection connection("db_name","ip_address","user", "password",3306, false);

Query client_query = connection.query();

clients a_client; populate_client_info(a_client);

client_query.insert(a_client); client_query.execute();

return 0; }