consigliere
consigliere

Reputation: 73

mysql - insert id from parent table

I have table definitions:

create table users(
                  id int not null auto_increment, 
                  usernaname varchar(50) not null, 
                  pass varchar(50) not null,
                  primary key(id)
                  ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
create table users_description(
                  user_id int not null, 
                  description varchar(255),
                  key(user_id), 
                  foreign key(user_id) references users(id) on delete cascade
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

and it is good, works nice.

but when I add a new user I use a next query:

insert into users (username, pass) values('test', 'test');

but how to add a id of user automatically in users_description table? Something similar to to this:

insert into users_description values(
                                    select id from users where username = 'test',
                                     'user description');

I want to use only two queries, is this possible?

Upvotes: 0

Views: 1350

Answers (3)

John Woo
John Woo

Reputation: 263853

Use LAST_INSERT_ID(). Example here.

Upvotes: 0

jogesh_pi
jogesh_pi

Reputation: 9782

$query = mysql_query("insert form (username, pass) values('test', 'test')");
$id = mysql_insert_id();

gives you the last inserted id in PHP ..

Upvotes: 0

Zane Bien
Zane Bien

Reputation: 23135

You can use LAST_INSERT_ID() to get the last inserted primary key id (which would be from the users table):

INSERT INTO users_description VALUES 
(LAST_INSERT_ID(), 'test', 'user description');

Upvotes: 3

Related Questions