
一次插入多条数据,除了复制其它表外, 只有重复地写insert. 如果有规律可以用WHILE 循环。
insrt into GOODS (GoodsName,Price,AreaId)values('aaa','bbb','ccc1')
insrt into GOODS (GoodsName,Price,AreaId)values('aaa','bbb','ccc2')
insrt into GOODS (GoodsName,Price,AreaId)values('aaa','bbb','ccc3')
insrt into GOODS (GoodsName,Price,AreaId)values('aaa','bbb','ccc4')
insrt into GOODS (GoodsName,Price,AreaId)values('aaa','bbb','ccc5')
insrt into GOODS (GoodsName,Price,AreaId)values('aaa','bbb','ccc6')
.................
(1)不排除以前执行过或手动插入过记录的可能。(2)如果代码本身只是这么简单的代码,那我没看出来什么问题,如果代码并不是这么简单,那么就仔细检查一下代码,入股确定代码没有任何问题,那么我有了以下猜想。
(2)个人觉得很扯淡的一种解释(可能),你可以试验一下,未必是真的,但如果是真的,那就发现bug了
首先声明,我没试验过,仅仅是一种猜想,猜错了是绝对可能的,毕竟一般情况下怎么也不可能在最开始只添加一条数据。
在最开始(划重点)的一条数据来说,应该是两条数据。因为有两个值,一个是init起始值,一个是nextval值,也就是说序列最开始(划重点)插入时至少是有两条数据的,这也就解释了为什么你的编号1,2插入时是两条,其他值插入值为1条。至于以后添加的nextval值,则都是以当前值为基础的,所以不会出现这种情况。当然这种情况应该只会出现在起始值+只添加一条数据的情况下。(以上均为猜测,具体的要靠你的试验来证明)
想排除这种可能,只要再建立一张表,一个序列,最开始(起始值)还是像这样一样只插入一条,看看是不是两条,如果是两条,那么就说明这猜测可能是真的,如果是一条,那就应该是我的猜想错误。
虽然我也知道猜想好像很扯淡,但是不妨试试。
1、在电脑上打开要去掉重复数据的数据库,这里新建一张含有重复数据的user表。
2、输入“select * from user where name in (select name from user group by name having count(name) >1) ”sql语句,点击运行可以看到查询出了数据库中user表的重复数据。
3、通过“delete from user where name in (select name from user group by name having count(name) >1) ”sql语句删除姓名重复的数据。
4、也可以通过“select distinct name from user”sql语句来去掉重复数据,这里去掉了张三的重复数据。
5、通过“select distinct class from user”sql语句来去掉班级相同的重复数据。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)