mysql - 从父表插入id

时间:2012-08-16 03:42:43

标签: php mysql

我有表定义:

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;

它很好,效果很好。

但是当我添加新用户时,我使用下一个查询:

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

但是如何在users_description表中自动添加用户ID? 类似的东西:

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

我想只使用两个查询,这可能吗?

3 个答案:

答案 0 :(得分:3)

您可以使用LAST_INSERT_ID()获取最后插入的主键ID(来自users表):

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

答案 1 :(得分:0)

使用LAST_INSERT_ID()Example here.

答案 2 :(得分:0)

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

为您提供PHP中最后插入的ID ..