用PHP插入mysql的auto_increment字段的问题
表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)
相关推荐
mysql中自增auto_increment功能的相关设置及问题
mysql中的自增auto_increment功能相信每位phper都用过,本文就为大家分享一下mysql字段自增功能的具体查看及设置方法
php mysql索引问题
朋友问:今天我碰到个问题,我建个表,索引是REF,怎么才能写进一条信息,自动生成一个REF号码,记录到表中去呢?希望生成的REF号码是连续的,从00000开始。
MySQL查询和修改auto_increment的方法
本文实例讲述了MySQL查询和修改auto_increment的方法。分享给大家供大家参考。具体如下: 查询表名为tableName的auto_increment值: 代码如下:SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name=”tableName”; 修改表名为tableName的auto_increment值: 代码如下:ALTER TABLE tableName auto_increment=number ; 希望本文所述对大家的MySQL程序设计有所帮助。
Mysql auto_increment 重新计数(让id从1开始)
方法一 delete from test; alter table `test` auto_increment=1 (好处,可以设置AUTO_INCREMENT 为任意值开始) 提示:如果表列和数据很多,速度会很慢,如90多万条,会在10分钟以上。 方法二 truncate table test (好处,简单,AUTO_INCREMENT 值重新开始计数) 一般情况下我们使用第二个就可以了,记住以上情况都是彻底删除所有记录。 您可能感兴趣的文章:mysql自增ID起始值修改方法mysql如何让自增id归0解决方案PHP获取MySql新增记录ID值
MySQL之Field‘***’doesn’t have a default value错误解决办法
今天,中国博客联盟有博友反馈,zgboke.com无法提交博客,当时我正好准备去假日广场聚会,就匆匆忙忙的提交试了下,发现提交博客的时候确实报如下错误: 提示web_pic不能为空值。很纳闷,之前都可以成功提交的,为什么突然不行了?看了下网上的案例,说是需要修改MySQL的配置什么的,但是目前博客联盟是挂在京东云擎的,数据库不能修改配置,按理说之前可以正常提交,后面应该也可以才对啊! 由于聚会时间快到了,就先放在一边了。回到家之后,对比了下网上的类似案例,原来是web_pic这个键值设置了不为空导致的,也就是在创建表的时候,使用了not null属性。于是进入mywebsql,登入京东云擎数


基础编程

