USE `test`$$
DROP PROCEDURE IF EXISTS `p_getAllTablesCount`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `p_getAllTablesCount`()
BEGIN
DECLARE tableName VARCHAR (100)
DECLARE tablesn VARCHAR (100)
DECLARE tableCount INT
DECLARE stopFlag INT
DECLARE sqlStr VARCHAR(1000)
-- 注意:请修改数据库名称
DECLARE cursor_name CURSOR FOR SELECT TABLE_NAME FROM information_schema.tables WHERE table_schema='test'
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET stopFlag=1
CREATE TABLE IF NOT EXISTS temp_table(table_name VARCHAR(100),table_count VARCHAR(100))
OPEN cursor_name
REPEAT
FETCH cursor_name INTO tableName
SET sqlStr = CONCAT('SELECT COUNT(1) into @tableCount FROM ', tableName)
SELECT sqlStr INTO @sqlStr
-- select @sqlStr
SELECT @tableCount INTO tableCount
BEGIN
PREPARE stepInsertIntoTable FROM @sqlStr
EXECUTE stepInsertIntoTable
END
SET sqlStr = CONCAT('insert into temp_table values(''',CONCAT(tableName),''',''',CONCAT(tableCount),''')')
SELECT sqlStr INTO @sqlStr
BEGIN
PREPARE stepInsertIntoTable FROM @sqlStr
EXECUTE stepInsertIntoTable
END
UNTIL stopFlag END REPEAT
CLOSE cursor_name
SELECT table_name,table_count FROM temp_table ORDER BY table_count DESC
-- PREPARE step FROM @sql1
-- EXECUTE step
DROP TABLE temp_table
END$$
DELIMITER
用select...into语句下面是mysql 5.0的帮助文档的:
这个SELECT语法把选定的列直接存储到变量。因此,只有单一的行可以被取回。
SELECT id,data INTO x,y FROM test.t1 LIMIT 1
注意,用户变量名在MySQL 5.1中是对大小写不敏感的。请参阅9.3节,“用户变量”。
重要: SQL变量名不能和列名一样。如果SELECT ... INTO这样的SQL语句包含一个对列的参考,并包含一个与列相同名字的局部变量,MySQL当前把参考解释为一个变量的名字。例如,在下面的语句中,xname 被解释为到xname variable 的参考而不是到xname column的:
CREATE PROCEDURE sp1 (x VARCHAR(5))
BEGIN
DECLARE xname VARCHAR(5) DEFAULT 'bob'
DECLARE newname VARCHAR(5)
DECLARE xid INT
SELECT xname,id INTO newname,xid
FROM table1 WHERE xname = xname
SELECT newname
END
当这个程序被调用的时候,无论table.xname列的值是什么,变量newname将返回值‘bob’。
DECLARE PRIMARY_KEY VARCHAR(100)SET PRIMARY_KEY = group_concat(NEW.USER_ID,NEW.ROLE_NAME)
查询语句是这样写的:
select group_concat(NEW.USER_ID,NEW.ROLE_NAME)from NEW where 条件
SELECT group_concat(NEW.USER_ID,NEW.ROLE_NAME separator '连接字符') FROM NEW where 条件
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)