LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: yanglei1979

数据库记录插入出现了一个意想不到的错误

[复制链接]
发表于 2006-12-2 11:29:49 | 显示全部楼层
唉~这样,将id字段的属性设置为auto_increment
执行以下sql
alter table `ask_member` add `id` int not null auto_increment primary key first;
php方面不用理会id的设置
insert的时候id留空,比如:
insert into ask_member (username,password) values('username','password');
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-3 03:57:04 | 显示全部楼层

我已经建立了ID怎么办呀

Post by quhan
唉~这样,将id字段的属性设置为auto_increment
执行以下sql
alter table `ask_member` add `id` int not null auto_increment primary key first;
php方面不用理会id的设置
insert的时候id留空,比如:
insert into ask_member (username,password) values('username','password');


我已经建立了ID怎么办呀,可以修改吗?并且里面还有很多记录,请问怎么改呀
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-3 03:57:04 | 显示全部楼层

我已经建立了ID怎么办呀

Post by quhan
唉~这样,将id字段的属性设置为auto_increment
执行以下sql
alter table `ask_member` add `id` int not null auto_increment primary key first;
php方面不用理会id的设置
insert的时候id留空,比如:
insert into ask_member (username,password) values('username','password');


我已经建立了ID怎么办呀,可以修改吗?并且里面还有很多记录,请问怎么改呀
回复 支持 反对

使用道具 举报

发表于 2006-12-3 04:29:34 | 显示全部楼层
只要ID数据都是唯一,增加auto_increment属性是没问题的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-3 04:56:57 | 显示全部楼层

我以后要删除会员怎么办呀

Post by nbxmedia
只要ID数据都是唯一,增加auto_increment属性是没问题的


我以后要删除某个会员的话,是不是所有会员的ID都要重新改变呀?


另外我的意思是改ID的数据结构属性,而不是改具体内容,我试了用PHPMYADMIN改,可是改不了,新建一个字段为自增的就可以,但以前建立了,再改为自增的就不行了
回复 支持 反对

使用道具 举报

发表于 2006-12-3 05:00:18 | 显示全部楼层
Post by yanglei1979
我以后要删除某个会员的话,是不是所有会员的ID都要重新改变呀?


另外我的意思是改ID的数据结构属性,而不是改具体内容,我试了用PHPMYADMIN改,可是改不了,新建一个字段为自增的就可以,但以前建立了,再改为自增的就不行了

不会;


auto_increment对应的字段必须为整数类型(int或者类似属性),而且必须建立了索引(一般是primary key).


一个数据表只能有一个auto_increment属性的字段



不能改的很大可能原因是,里面有重复的记录
回复 支持 反对

使用道具 举报

发表于 2006-12-3 08:03:09 | 显示全部楼层
Post by yanglei1979
我以后要删除某个会员的话,是不是所有会员的ID都要重新改变呀?
不会,那个id会空掉
Post by yanglei1979

另外我的意思是改ID的数据结构属性,而不是改具体内容,我试了用PHPMYADMIN改,可是改不了,新建一个字段为自增的就可以,但以前建立了,再改为自增的就不行了
同时设置他为主键看看?我从来没尝试过这么作,因为在我看来,建一个有整型自增主键的列(也就是传说中的id),是绝对必要且从来那么做的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-3 11:12:47 | 显示全部楼层

mysql4.0可以改,MYSQL5.0怎么不能改呀

Post by quhan
不会,那个id会空掉
同时设置他为主键看看?我从来没尝试过这么作,因为在我看来,建一个有整型自增主键的列(也就是传说中的id),是绝对必要且从来那么做的



我在MySQL 4.0.17-nt  里面先把TID改为主键,然后再修改属性为 auto_increment  就可以成功

但是我在MySQL 5.0.24a  里面设主键的时候出现这个提示:"MySQL 返回:


#1091 - Can't DROP 'PRIMARY'; check that column/key exists

"
然后我修改属性的时候又出现这个:"MySQL 返回:


#1067 - Invalid default value for 'tid' "

怎么解决呀,现在已经有一万多条数据了,不能重新建立呀,必须要改呀
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-4 10:20:26 | 显示全部楼层
多谢各位精彩的回答,我把原来的ID删除了,然后重新建立了一个可以自增的ID解决了.

本来以为只有一个ID重复呢,后来一检查,竟然有几十个ID重复的,哈哈,晕呀
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-4 10:20:36 | 显示全部楼层
多谢各位精彩的回答,我把原来的ID删除了,然后重新建立了一个可以自增的ID解决了.

本来以为只有一个ID重复呢,后来一检查,竟然有几十个ID重复的,哈哈,晕呀

看来我还要进终南山拜师学艺去呀
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表