sql中用replace修改带自增量(auto_increment)记录的问题

数据库是mysql,我属于比较无聊的……我新建了2条记录,自动赋值1和2,我把1用update语句改成了0,然后用replace对0这条记录进行覆盖。但是他不会覆盖到0这... 数据库是mysql,我属于比较无聊的……我新建了2条记录,自动赋值1和2,我把1用update语句改成了0,然后用replace对0这条记录进行覆盖。但是他不会覆盖到0这条上,会自动补到1那一列(相当于新加了一列)。然后我又做了一个,是把1改成0,2改成1,对1进行覆盖没问题,对0覆盖会创建一个新的2(也是加了一列)。求问为什么不能对0进行覆盖?是因为自增量里没有0么? 展开
 我来答
sgj773624926
2014-02-11 · TA获得超过185个赞
知道小有建树答主
回答量:120
采纳率:0%
帮助的人:88.1万
展开全部
把update的sql语句粘出来看看吧,如果如下写法不会出问题的。
update A set title = replace(title,'abc','cba') where id=1
更多追问追答
追问
UPDATE customers SET cust_id = 0 WHERE cust_id = 1;
REPLACE INTO customers(cust_id,cust_name,cust_sex,cust_city) VALUES(0,'test0','M','sichuan');
你那种等号的我写了报错啊
追答

先试试下面这个SQL语句

UPDATE customers SET cust_name = REPLACE( cust_name, 'abc', 'cba' ) WHERE cust_id =1

replace into 首先尝试插入数据到表中, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据。

要注意的是:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。

MySQL replace into 有三种形式:

  1. replace into tbl_name(col_name, ...) values(...)

  2. replace into tbl_name(col_name, ...) select ...

  3. replace into tbl_name set col_name=value, ...

最后再试试下面的SQL语句

REPLACE INTO customers( cust_id, cust_name,cust_sex, cust_city ) VALUES ( 1, 'test345','M', 'test345' )

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式