根据表名表来更新所有表

sjlsy 2017-11-01 05:04:05
CREATE TABLE tbalseAll (
id int(11) NOT NULL auto_increment,
tablename varchar(50) default NULL,
PRIMARY KEY (id)
)

INSERT INTO gg VALUES ('1', 'tb1');
INSERT INTO gg VALUES ('2', 'tb2');
INSERT INTO gg VALUES ('3', 'tb3');

CREATE TABLE tb1 (
aaaa int default NULL
)
CREATE TABLE tb2 (
aaaa int default NULL
)
CREATE TABLE tb3 (
aaaa int default NULL
)

INSERT INTO tb1 VALUES (4);
INSERT INTO tb1 VALUES (5);
INSERT INTO tb2 VALUES (3);
INSERT INTO tb2 VALUES (3);
INSERT INTO tb3 VALUES (9);
INSERT INTO tb4 VALUES (3);

以上是测试数据
tbalseAll存储表名

设置tbalseAll的tablename列包含的所有表的aaaa字段,如:设置所有表aaaa=aaaa+1
...全文
177 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2017-11-02
  • 打赏
  • 举报
回复
CREATE TABLE tbalseAll (
  id int(11) NOT NULL auto_increment,
  tablename varchar(50) default NULL,
  PRIMARY KEY  (id)
);

INSERT INTO tbalseAll VALUES ('1', 'tb1');
INSERT INTO tbalseAll VALUES ('2', 'tb2');
INSERT INTO tbalseAll VALUES ('3', 'tb3');

CREATE TABLE tb1 (  
  aaaa int default NULL  
);
CREATE TABLE tb2 (  
  aaaa int default NULL  
);
CREATE TABLE tb3 (  
  aaaa int default NULL  
);

INSERT INTO tb1 VALUES (4);
INSERT INTO tb1 VALUES (5);
INSERT INTO tb2 VALUES (3);
INSERT INTO tb2 VALUES (3);
INSERT INTO tb3 VALUES (9);


SELECT CONCAT('UPDATE ',GROUP_CONCAT(tablename), ' SET ',
	GROUP_CONCAT(CONCAT(tablename, '.aaaa=', tablename,'.aaaa+1')))
INTO @sql
FROM tbalseAll;
PREPARE st FROM @sql;
EXECUTE st;
DEALLOCATE PREPARE st;

SELECT * FROM tb1;
SELECT * FROM tb2;
SELECT * FROM tb3;
zjcxc 2017-11-02
  • 打赏
  • 举报
回复
动态的表数量,所以操作只能用动态的,而动态语句里面只能一个个语句 所以,除非能够一个语句搞定多表操作,否则动态语句得多次,多次就涉及到循环,在 MySQL 中,循环就需要存储过程了 如果你的问题仅限于 UPDATE,那么不用存储过程可以搞定,但仍然不能用一句搞定
sjlsy 2017-11-01
  • 打赏
  • 举报
回复
顶下顶顶顶顶顶顶
sjlsy 2017-11-01
  • 打赏
  • 举报
回复
引用 2 楼 qq_30635781 的回复:
存储过程也可以呀,但是你得考虑参数和输出
不要用存储过程,用一条sql语句...
qq_30635781 2017-11-01
  • 打赏
  • 举报
回复
存储过程也可以呀,但是你得考虑参数和输出
sjlsy 2017-11-01
  • 打赏
  • 举报
回复
不用存储过程可以吗,一条sql行不行,谢谢

56,912

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧