2011-07-13 70 views
0

我試圖在表中添加一個新的mysql列,使用插入另一個表中的insert_id。這是我用一句話......MySql添加列名與last_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連接

,和服務器的命令執行過程中遇到「致命錯誤響應。 '

有人能幫助我嗎?

+2

如果沒有別的,你會失蹤)在CONCAT功能結束 – koressak

+4

這聽起來像破碎的設計; *非常*破 – wonk0

+1

@ wonk0是的,這個失敗很強 – sfussenegger

回答

1

呃...我自己回答。

經過深入的搜索,我還沒有找到如何動態地添加一列由mysql中的變量。

最後,我不得不做兩個querys,首先插入測試並獲得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; "; 

我很遺憾沒有找到答案,但至少我達到了我的目標。 謝謝大家的幫助!

+2

我想人們不願意幫助那些似乎有缺陷的東西。拇指規則:如果您的關係數據庫應用程序需要定期更改其自己的表 - 這是錯誤的。 – Mchl