插入选定的表名称

时间:2015-05-28 09:44:21

标签: mysql sql

我的MySQL数据库中有一个叫做别名的表。

看起来像这样:

------------------
| Id    | Alias  |
------------------
|1      | 'TabX' |
------------------
|2      | 'TabY' |

...    

|       |        |
------------------

我需要插入这样的表:

INSERT INTO (SELECT Alias FROM Aliases WHERE id=1) (somevalue) VALUES (value);

这不起作用。请帮忙。

3 个答案:

答案 0 :(得分:1)

您可以使用预先准备的声明与其联系:

SET @alias = (SELECT Alias FROM Aliases WHERE id = 1);
SET @sql = CONCAT('INSERT INTO ', @alias, ' (somevalue) VALUES (value)');
PREPARE stmt1 FROM @sql;
EXECUTE stmt1;

答案 1 :(得分:0)

您需要为此PROCEDURE。并为此目的使用准备好的语句。你需要这样的程序:

DELIMITER $$
DROP PROCEDURE IF EXISTS `DB`.`INSERT_VAR`$$
CREATE DEFINER=`user`@`host` PROCEDURE INSERT_VAR(IN tableName VARCHAR(200))
BEGIN
SET @insert_query=CONCAT("INSERT INTO ", tableName, " (id) SELECT id FROM test");
PREPARE stmtInsert FROM @insertTab;
EXECUTE stmtInsert;
END$$
DELIMITER ;

您需要修改此程序以满足您的需求。

答案 2 :(得分:-1)

试试这个

INSERT INTO table_name
SELECT Alias 
  FROM Aliases 
 WHERE id = 1