首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql中的循环update语句

mysql中的循环update语句
EN

Stack Overflow用户
提问于 2016-11-23 11:17:44
回答 2查看 5K关注 0票数 3

我目前正在尝试使用表中的循环来更新行。

我有两个名为'id‘和'visitor_id’的字段。“‘id”列是自动递增的,但“visitor_id”不是。表中已经存在数据,两列如下所示。

代码语言:javascript
复制
'id'     'visitor_id'
 1            0
 2            0
 3            0
 4            0
 5            0

所以我想要的是这两列具有相同的值。

代码语言:javascript
复制
'id'     'visitor_id'
 1            1
 2            2
 3            3
 4            4
 5            5

我尝试并搜索如何循环和更新值,但仍然没有luck.This是我尝试的代码。

代码语言:javascript
复制
DELIMITER $$

DROP PROCEDURE IF EXISTS insert_loop $$

CREATE PROCEDURE insert_loop ()
BEGIN
    DECLARE i int DEFAULT 1;
    WHILE i <=30 DO
        UPDATE test_db.visitor_visit SET visitor_id=i WHERE id=i;
        SET i = i + 1;
    END WHILE;
END $$

CALL insert_loop();

我会接受任何其他可能对我的情况有帮助的方法。谢谢!:)

EN

回答 2

Stack Overflow用户

发布于 2016-11-23 15:57:50

您必须使用触发器(在insert之后)才能解决此问题,请尝试以下查询:

代码语言:javascript
复制
CREATE TRIGGER aa BEFORE INSERT ON ab FOR EACH ROW SET NEW.visitor_id = new.id

只需在第一次插入时,设置'visitor_id = null‘,然后将其设置为您想要的任何值,因为它将直接接受同一行中的'id’值。希望是有用的。

票数 3
EN

Stack Overflow用户

发布于 2016-11-23 11:20:25

一个简单的update查询也可以做同样的事情。

代码语言:javascript
复制
UPDATE test_db.visitor_visit SET visitor_id=id 
WHERE id BETWEEN 1 and 30
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40755424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档