0

私はテーブル定義を持っています:

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');

2つのクエリのみを使用したいのですが、これは可能ですか?

4

3 に答える 3

3

LAST_INSERT_ID()最後に挿入された主キー ID (usersテーブルからのもの)を取得するために使用できます。

INSERT INTO users_description VALUES 
(LAST_INSERT_ID(), 'test', 'user description');
于 2012-08-16T03:47:05.943 に答える
0

を使用しLAST_INSERT_ID()ます。例はこちら。

于 2012-08-16T03:48:27.280 に答える
0
$query = mysql_query("insert form (username, pass) values('test', 'test')");
$id = mysql_insert_id();

PHPで最後に挿入されたIDを提供します..

于 2012-08-16T03:49:36.700 に答える