MySql добавление имени столбца с помощью last_insert_id () - PullRequest
0 голосов
/ 13 июля 2011

Я пытаюсь добавить новый столбец 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 Ответ

1 голос
/ 15 июля 2011

Ну ... я отвечаю сам.

После глубокого поиска я не нашел, как динамически добавить столбец с помощью переменной в mysql.

В конце мне пришлосьвыполните два запроса, сначала вставьте тест и получите идентификатор, а затем обновите таблицу пользователей.

Поскольку вставка и получение идентификатора выполняются в одном запросе, проблем с постоянными подключениями и одновременными обновлениями не возникает.

 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; ";

Я сожалею, что не нашел ответа, но, по крайней мере, я достиг своей цели.Спасибо всем за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...