我有两张表,如下:
CREATE TABLE "singer" (
"SingerID" int(11) NOT NULL auto_increment,
"Name" varchar(50) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY ("SingerID")
);CREATE TABLE "singer_sum" (
"SingerID" int(11) NOT NULL,
"Summary" text collate utf8_unicode_ci NOT NULL,
PRIMARY KEY ("SingerID")
);注意:singer.SingerID 是 auto_increment。第一步:我先在表singer中插入数据 insert into singer (Name) value ("周杰伦");
第二步:然后执行 select MAX(SingerID) from singer 语句获得 SingerID
第三步:最后在关联表中singer_sum同步插入数据 insert into singer_sum value(SingerID,"周杰伦,一个优秀的流行歌手!");上面就是我能想到的。其中有一个很大的问题,就是在执行 “第二步”的时候, 可能在并发的时候获得SingerID是错误的。并且这样做的效率很低。请给位达人给小弟指点一下,如果以最佳的方法解决类似多个关联表的插入数据问题。O(∩_∩)O... 谢谢了!
CREATE TABLE "singer" (
"SingerID" int(11) NOT NULL auto_increment,
"Name" varchar(50) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY ("SingerID")
);CREATE TABLE "singer_sum" (
"SingerID" int(11) NOT NULL,
"Summary" text collate utf8_unicode_ci NOT NULL,
PRIMARY KEY ("SingerID")
);注意:singer.SingerID 是 auto_increment。第一步:我先在表singer中插入数据 insert into singer (Name) value ("周杰伦");
第二步:然后执行 select MAX(SingerID) from singer 语句获得 SingerID
第三步:最后在关联表中singer_sum同步插入数据 insert into singer_sum value(SingerID,"周杰伦,一个优秀的流行歌手!");上面就是我能想到的。其中有一个很大的问题,就是在执行 “第二步”的时候, 可能在并发的时候获得SingerID是错误的。并且这样做的效率很低。请给位达人给小弟指点一下,如果以最佳的方法解决类似多个关联表的插入数据问题。O(∩_∩)O... 谢谢了!
$lastid=mysql_insert_id();
这样就可以获得刚才插入数据的id,并且不会出错的!