Mysql 使用存储过程将表数据复制到其他数据库

Mysql 使用存储过程将表数据复制到其他数据库,mysql,Mysql,只是想知道,我不熟悉存储过程 我刚试过这个 INSERT INTO new.emp SELECT * FROM old.users 它工作并将旧表用户的数据插入到新的emp表中 但当我在存储过程中这样做时,我得到了一个语法错误 CREATE PROCEDURE insertnew INSERT INTO new.emp SELECT * FROM old.users 区别是什么?在查询的哪一部分出现语法错误?创建存储过程的正确语法如下所示: DELIMITER // CREATE P

只是想知道,我不熟悉存储过程

我刚试过这个

INSERT INTO new.emp SELECT * FROM old.users
它工作并将旧表用户的数据插入到新的emp表中

但当我在存储过程中这样做时,我得到了一个语法错误

CREATE PROCEDURE insertnew
    INSERT INTO new.emp SELECT * FROM old.users

区别是什么?

在查询的哪一部分出现语法错误?创建存储过程的正确语法如下所示:

DELIMITER //
CREATE PROCEDURE InsertEmployee()
BEGIN
    INSERT INTO new.emp SELECT * FROM old.users;
END //
DELIMITER ;

我在插入到。。。线路。顺便说一句,我试过了,我成功了,谢谢!我以为我不需要“分隔符//”,但看起来我需要它。顺便说一句,我有另一个select查询,它获取不同表中的数据(这些表在同一个数据库中,我使用left join将它们组合在一起)。我的问题是,我可以直接插入newdb.table吗?或者我需要做一些特殊的事情,比如定义一些表或其他什么吗?好的,我只是尝试了一下,没有发现任何错误,但是当我尝试调用该过程时,为什么会出现错误“SELECT command DENITED to user'user'@'localhost'for table'table'user'没有使用SELECT子句的权限,因此您需要使用此命令,
首先使用mysql
数据库,然后键入此查询
将*.*上的所有内容授予由标识的“user'@'localhost'此链接可帮助您进一步: