У меня сложная миграция WebApp из системы Unix/Apache/MySQL в Win2012/Apache/MSSQL. Сначала я установил необходимый sqlsrv-материал, и соединение работает. НО: запросы обновления вызывают mesages ошибки какCodeIgniter/sqlsrv/MSSQL Update-Queries содержат Id-column - Ошибка
Ошибка базы данных Происходило
Номер ошибки: 42000/8102
[Microsoft] [Драйвер ODBC 13 для SQL Server] [SQL Server] Die Ид Identitätsspalte канн Nicht aktualisiert Верден.»последняя часть в основном означает "ID-identy столбец не может быть обновлена."
Сформированное обновление-запрос выглядит следующим образом:
UPDATE "dbo"."table" SET "id" = 1, "someStuff" = 5 WHERE "id" = 1
Мои модели используют операторы, такие как:
$data = array (
'someStuff' => (int) $stuff
);
$this->db->update('table',$data,"id = ".$itemID);
Я понимаю, сообщение как заявление содержит SET "идентификатор", который очевидно, не имеет значения, поскольку id-поле является произведением auto-increment, генерируемым в mssql, - и, как вы видите, я не включаю его в свою модель. Как я могу получить Codeigniter
, чтобы уменьшить значение UPDATE
, чтобы не содержать первичные ключи? Или есть еще один простой способ решить это?
Если это помогает, я могу также изменить Codeigniter
, чтобы проверить, содержит ли внутренне сгенерированный запрос поле id
, чтобы пропустить их, поскольку они всегда являются автоматически сгенерированными первичными ключами, но мои попытки сделать это не были успешный.
К сожалению, это не я, который включает в себя ID-поле, это codeigniter. Как я писал, я знаю о ситуации, но я не могу ее исправить. :( – SimonLearner
Ваш запрос неверен. Звучит это правильно? Обновить tb_name Установить $ id = 1 где $ id = 1; – JobSam
Нет, это пока звучит не так. Как я уже говорил дважды, я знаю, ситуации и - и, как я уже упоминал дважды, это не я, который включает в себя столбец идентификатора в запросе.«Мой» запрос - это то, что происходит в модели - вы увидите, что идентификатор встречается ровно один раз, и именно здесь добавляется предложение «где» («id =». $ ItemID »). Моя проблема заключается в том, что где-то во время процесса codeigniter добавляет id-column, и я хотел бы знать, как предотвратить это. – SimonLearner