用PHP插入mysql的auto_increment字段的问题
我要把用户输入的数据分快慢表保存, 常用的数据存在表A中, 不常用的数据存在表B中. 假设用户输入两个数据: 姓名和地址, 我把姓名存在表A, 地址存在表B, 用相同的id连接两个表. AB两表设计如下:
表A:
id INT PRIMARY, auto_increment
name varchar(10)
表B
id INT PRIMARY
address varchar(200)
用的时候:
SELECT A.name, B.address FROM A, B where A.id=B.id
我的问题是如何在插入的时候保证两个表的ID同步. 比如我在PHP中得到了$name和$address, 最省脑子的插入步骤是:
1 INSERT INTO A VALUES (NULL, $name); //NULL让id取自增值
2. SELECT id FROM A ORDER BY id DESC LIMIT 0, 1//然后得到刚插入的那个记录的id, 把id存在$id中
3. INSERT INTO B VALUES($id, $address) //再用得到的id插表B
但我觉得这样效率太低了, 尤其是第二步,不仅慢, 还有紊乱的危险(比如两个人同时执行完第一步1 - 要是用锁表的办法就太过分了)
要是你的话该怎么做呢?
(我用name和address简化叙述, 实际情况是B中有很长的TEXT)