MySql使用last_insert_id()添加列名

时间:2011-07-13 09:19:43

标签: mysql add

我正在尝试在表中添加一个新的mysql列,使用另一个表的插入中的insert_id。这是我用的句子......

string sqlInsert = "INSERT INTO test (IdPico, Nombre, TextoBienvenida, FechaCreacion) VALUES (1, 'nombretest', 'aslkñdfa lsñdk asjd asldkf añlsj f', '2011-07-13 10:22:53'); ";
sqlInsert += "SET @IDTESTCREATED := CONCAT('Test', LAST_INSERT_ID(); ";
sqlInsert += "ALTER TABLE Usuarios ADD COLUMN @IDTESTCREATED BIT DEFAULT 0; ";

我使用ASP.NET 4.0和MySql连接,服务器响应'命令执行期间遇到的致命错误。 “

有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

嗯......我自己回答。

进行深度搜索后,我还没有找到如何通过mysql中的变量动态添加列。

最后我不得不做两个查询,首先插入测试并获取id,然后再更新users表。

由于id的插入和检索在同一个查询中,因此不存在持久连接和并发更新的问题。

 string sqlInsert = "INSERT INTO Test (<fields>) VALUES (<values>);";
    sqlInsert += "SELECT LAST_INSERT_ID() AS IdTestInserted; ";
 string idnewtest = <result of insert query>;
 string sqlAlter = "ALTER TABLE Users ADD COLUMN Test" + idnewtest + " BIT DEFAULT 0; ";

我很遗憾找不到答案,但至少我实现了目标。 谢谢大家的帮助!