重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
从零蛋娃娃的回复中得到启示,解决问题。
成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、网站设计、玉溪网络推广、成都小程序开发、玉溪网络营销、玉溪企业策划、玉溪品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供玉溪建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
重新表述需求: id自增长,同时需要一个键uniquekey是唯一键。
解决方法就是:
把id在索引中设置索引类型为任意一个类型,比如normal,然后unique就可以设置为主键了。
或者反过来,id自增长,同时作为主键。 uniquekey在索引中索引类型设置为unique即可。
补充:考虑到主键能设置成外键,所以建议用以上第一种方式。
就我所知这个好像无法实现,就算你自己编译mysql恐怕也很难。因为last_insert_id()这个内置的函数返回最近一次插入的自增长ID,当没有符合条件的ID时,它返回0,所以如果自增长从0开始的话,这个返回值就很难判定到底是插入了一条自增长ID为0的记录还是没有符合条件的记录了。
方法一: 如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数
truncate table
表名
方法二: dbcc checkident ('table_name', reseed,
new_reseed_value) 当前值设置为 new_reseed_value。如果自创建表后没有将行插入该表,则在执行 DBCC CHECKIDENT
后插入的第一行将使用 new_reseed_value 作为标识。否则,下一个插入的行将使用 new_reseed_value + 1。如果
new_reseed_value 的值小于标识列中的最大值,以后引用该表时将产生 2627 号错误信息。
方法二不会清空已有数据,操作比较灵活,不仅可以将自增值归零,也适用于删除大量连续行后,重新设置自增值并插入新的数据;或从新的值开始,当然不能和已有的冲突。
$sql="delete from $table_vote";
mysql_query($sql, $link);
$sql="alter table $table_vote auto_increment=1";
mysql_query($sql,
$link);
1问:你有id=8的数据吗?答:没有!那你为什么where后面找id=8的?
2问:你想修改的是什么?答:id,那你修改数据名字干什么呢?改ID啊!
3问:你的ID是自增可修改吗?答:是!那就修改,不是!那就把数据库的ID列设置为可修改!
wl:武力,zl:智力,ts:统帅,zz是什么?
一、不清空数据
原理:删除原有的自增ID,重新建立新的自增ID。
二、如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数
首先码却保你这张表中没有PRIMARY KEY,如果有先删除这张表中的 PRIMARY KEY,
然后创建一个自增长字段
语法如下:
ALTER TABLE `表名` ADD `字段名` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
例如:
ALTER TABLE `custnew` ADD `cust_id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY