PDA

View Full Version : How to insert the value of auto_increment to another field in "one" insert sql ???


pheadxp387756
10-27-2009, 03:28 AM
I have a database and the structure is like


database_test2
table_test1
-------------------
id Name Xid
-------------------
1 XYZ 1
2 OPQ 2
3 ABC 3
4 DEF 4
5 RTY 5

the column id is auto_increment ....
when I insert a data into table_test1
I want the Xid get value and the value is the same with id

I know a way to do this , but it cost a lot of resources...
the way is to insert the data and leave the Xid blank ..
then use mysql_insert_id ..
then Update the Xid using the value ...

Shame on me.. ^^"
Does there any one can help me to solve this??

I found a solution on

http://www.bram.us/2008/07/30/mysql-get-next-auto_increment-value-fromfor-table/

But I don't know the

WHERE TABLE_SCHEMA = $dbName AND TABLE_NAME = $tblName. means ...

can you help me to make a complete SQL sentence???

Jason Byrnes
10-27-2009, 11:01 AM
using the DataAssist insert record server behavior, the id is automaticly stored in a session variable.

In the Insert Record Wizard, the Session Variable section allows you to select the ID column from your table and set the name of a session variable that will store the inserted records ID.

In the Insert record behavior for the child table, select the foreign key that relate the parent table and click the lightning bolt next to value. from the session collection, select the session variable that is created by the Insert Record behavior for the parent table.

pheadxp387756
10-28-2009, 02:02 AM
thanks for reply...
but what I want is insert record into "one" table and it have the auto_increment field `id` and a field `Xid` which automaticallly insert the value of `id` ...
the answer you tell me is that insert a record into "A" table then store the value in session variable .... then insert record into "B" table by using the session variable....
even though using the session variable to insert into "A" table can do the thing I want ...
but is there any idea to insert the record just using "one" insert server behavior ... NOT "TWO" insert server behavior???

Jason Byrnes
10-28-2009, 09:58 AM
Sorry, I missed that.

OK using that guys example, you need to create a new database connection to the MySQL information_schema database. Then create a recordset to look up the AUTO Increment ID for the table you will be inserting to:

SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = '<database name.' AND TABLE_NAME = '<table name>'

In the insert record behavior, bind the xID column to the AUTO_INCREMENT column in the recordset.

pheadxp387756
10-28-2009, 04:43 PM
that's what I want , thanks a lot ...

Jason Byrnes
10-29-2009, 10:24 AM
you're welcome.